From a931e1e40e4d3e15db1dda20d6ab539a6d33b5f4 Mon Sep 17 00:00:00 2001 From: MitaliJM <91389144+MitaliJM@users.noreply.github.com> Date: Sat, 28 Oct 2023 02:12:51 +0530 Subject: [PATCH] Create SudokuSolver.java --- SudokuSolver.java | 74 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 74 insertions(+) create mode 100644 SudokuSolver.java diff --git a/SudokuSolver.java b/SudokuSolver.java new file mode 100644 index 0000000..2e2b1fb --- /dev/null +++ b/SudokuSolver.java @@ -0,0 +1,74 @@ +import java.util.Scanner; + +public class SudokuSolver { + public static boolean solveSudoku(int[][] board) { + for (int row = 0; row < 9; row++) { + for (int col = 0; col < 9; col++) { + if (board[row][col] == 0) { + for (int num = 1; num <= 9; num++) { + if (isValid(board, row, col, num)) { + board[row][col] = num; + if (solveSudoku(board)) { + return true; + } + board[row][col] = 0; // Backtrack + } + } + return false; + } + } + } + return true; + } + + public static boolean isValid(int[][] board, int row, int col, int num) { + for (int i = 0; i < 9; i++) { + if (board[row][i] == num || board[i][col] == num) { + return false; + } + } + + int startRow = row - row % 3; + int startCol = col - col % 3; + for (int i = 0; i < 3; i++) { + for (int j = 0; j < 3; j++) { + if (board[i + startRow][j + startCol] == num) { + return false; + } + } + } + return true; + } + + public static void printSudoku(int[][] board) { + for (int r = 0; r < 9; r++) { + for (int d = 0; d < 9; d++) { + System.out.print(board[r][d]); + System.out.print(" "); + } + System.out.print("\n"); + + if ((r + 1) % 3 == 0) + System.out.print(""); + } + } + + public static void main(String[] args) { + int[][] board = new int[9][9]; + Scanner scanner = new Scanner(System.in); + + System.out.println("Enter the Sudoku puzzle (use 0 for empty cells):"); + for (int row = 0; row < 9; row++) { + for (int col = 0; col < 9; col++) { + board[row][col] = scanner.nextInt(); + } + } + + if (solveSudoku(board)) { + System.out.println("Solved Sudoku:"); + printSudoku(board); + } else { + System.out.println("No solution exists."); + } + } +}