February 6, 2023
Sudoku Solution Validator

Belajar Bahasa C – Sudoku Solution Validator

Sudoku Background

Sudoku is a game played on a 9×9 grid. The goal of the game is to fill all cells of the grid with digits from 1 to 9, so that each column, each row, and each of the nine 3×3 sub-grids (also known as blocks) contain all of the digits from 1 to 9.
(More info at: http://en.wikipedia.org/wiki/Sudoku)

Sudoku Solution Validator

Write a function validSolution/ValidateSolution/valid_solution() that accepts a 2D array representing a Sudoku board, and returns true if it is a valid solution, or false otherwise. The cells of the sudoku board may also contain 0’s, which will represent empty cells. Boards containing one or more zeroes are considered to be invalid solutions.

The board is always 9 cells by 9 cells, and every cell only contains integers from 0 to 9.

Examples

validSolution([
  [5, 3, 4, 6, 7, 8, 9, 1, 2],
  [6, 7, 2, 1, 9, 5, 3, 4, 8],
  [1, 9, 8, 3, 4, 2, 5, 6, 7],
  [8, 5, 9, 7, 6, 1, 4, 2, 3],
  [4, 2, 6, 8, 5, 3, 7, 9, 1],
  [7, 1, 3, 9, 2, 4, 8, 5, 6],
  [9, 6, 1, 5, 3, 7, 2, 8, 4],
  [2, 8, 7, 4, 1, 9, 6, 3, 5],
  [3, 4, 5, 2, 8, 6, 1, 7, 9]
]); // => true

validSolution([
  [5, 3, 4, 6, 7, 8, 9, 1, 2], 
  [6, 7, 2, 1, 9, 0, 3, 4, 8],
  [1, 0, 0, 3, 4, 2, 5, 6, 0],
  [8, 5, 9, 7, 6, 1, 0, 2, 0],
  [4, 2, 6, 8, 5, 3, 7, 9, 1],
  [7, 1, 3, 9, 2, 4, 8, 5, 6],
  [9, 0, 1, 5, 3, 7, 2, 1, 4],
  [2, 8, 7, 4, 1, 9, 6, 3, 5],
  [3, 0, 0, 4, 8, 1, 1, 7, 9]
]); // => false

Solution

#include <stdbool.h>

bool validSolution(unsigned int board[9][9])
{
  /* Write your code here */
  int b, k, ko, bb, kk, jum, cek = 1;

  for (b = 0; b < 9; b++)
  {
    jum = 0;
    for (k = 0; k < 9; k++)
    {
      jum = jum + board[b][k];
    }
    if (jum != 45)
    {
      cek = 0;
    }
  }

  for (b = 0; b < 9; b++)
  {
    jum = 0;
    for (k = 0; k < 9; k++)
    {
      jum = jum + board[k][b];
    }
    if (jum != 45)
    {
      cek = 0;
    }
  }

  for (ko = 0; ko < 9; ko++)
  {
    bb = (ko / 3) * 3;
    kk = (ko % 3) * 3;
    jum = 0;
    for (b = bb; b < bb + 3; b++)
    {
      for (k = kk; k < kk + 3; k++)
      {
        jum = jum + board[b][k];
      }
    }
    if (jum != 45)
    {
      cek = 0;
    }
  }
  return cek;
}

Rajo Intan

Blogger, pemiliki Onestring Lab, menulis artikel terkait teknologi informasi dan pendidikan. Web Developer, berpengalaman lebih dari 20 tahun mengembangkan berbagai aplikasi dan sistem informasi. Kerjasama kontak di onestringlab@gmail.com atau https://forms.gle/xAGKkpi6B3BzJyzk7

View all posts by Rajo Intan →

Leave a Reply

Your email address will not be published. Required fields are marked *

Ads Blocker Image Powered by Code Help Pro

Ads Blocker Detected!!!

We have detected that you are using extensions to block ads. Please support us by disabling these ads blocker.

Powered By
Best Wordpress Adblock Detecting Plugin | CHP Adblock