
Sudoku Solver
Sudoku is a logic-based number-placement puzzle. The objective is to fill a 9×9 grid with digits so that each column, each row and each 3×3 sub-grid contains all of the digits from 1 to 9. The puzzle creator provides a partially completed grid, which typically has a unique solution.
For more information about this game, you should report to this site.
For example, the following grid
![]() |
gives the result | ![]() |
A puzzle is represented as a list of lists with digits. A zero value means that the value hasn't been set.
Input: The initial 9x9 grid composed by integers as a list of lists.
Output: The result of the sudoku as a list of lists.
Example:
checkio([[5, 0, 0, 7, 1, 9, 0, 0, 4], [0, 0, 1, 0, 3, 0, 5, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 8, 5, 9, 7, 2, 6, 4, 0], [0, 0, 0, 6, 0, 1, 0, 0, 0], [0, 2, 6, 3, 8, 5, 9, 1, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 3, 0, 5, 0, 2, 0, 0], [8, 0, 0, 4, 9, 7, 0, 0, 6]]) == [[5, 6, 8, 7, 1, 9, 3, 2, 4], [9, 7, 1, 2, 3, 4, 5, 6, 8], [2, 3, 4, 5, 6, 8, 7, 9, 1], [1, 8, 5, 9, 7, 2, 6, 4, 3], [3, 9, 7, 6, 4, 1, 8, 5, 2], [4, 2, 6, 3, 8, 5, 9, 1, 7], [6, 1, 9, 8, 2, 3, 4, 7, 5], [7, 4, 3, 1, 5, 6, 2, 8, 9], [8, 5, 2, 4, 9, 7, 1, 3, 6]]
How it is used:
This is a classic constraint satisfaction problem.
CSPs are mathematical problems defined as a set of objects whose state must satisfy a number of constraints or limitations.
CSPs are the subject of intense research in both artificial intelligence and operations research, since the regularity in their formulation provides a common basis to analyze and solve problems of many unrelated families.
And of course now you can use this code to help your gramma solve all of the puzzles.
Precondition: Each test case has only one unique solution.
∀ x ∈ puzzle : 0 ≤ x < 10