From caaa46afe6d87196afed6082e9a512746fff032e Mon Sep 17 00:00:00 2001 From: amin Date: Wed, 3 Jul 2024 03:20:12 +0100 Subject: [PATCH] test: adding subject and main --- .../valid-sudoku/ExerciseRunner.java | 33 +++++++++ .../java/checkpoints/valid-sudoku/README.md | 71 +++++++++++++++++++ 2 files changed, 104 insertions(+) create mode 100644 subjects/java/checkpoints/valid-sudoku/ExerciseRunner.java create mode 100644 subjects/java/checkpoints/valid-sudoku/README.md diff --git a/subjects/java/checkpoints/valid-sudoku/ExerciseRunner.java b/subjects/java/checkpoints/valid-sudoku/ExerciseRunner.java new file mode 100644 index 000000000..480118bc0 --- /dev/null +++ b/subjects/java/checkpoints/valid-sudoku/ExerciseRunner.java @@ -0,0 +1,33 @@ +public class ExerciseRunner { + public static void main(String[] args) { + ValidSudoku validSudoku = new ValidSudoku(); + + // Test case 1 + char[][] board1 = { + {'5', '3', '.', '.', '7', '.', '.', '.', '.'}, + {'6', '.', '.', '1', '9', '5', '.', '.', '.'}, + {'.', '9', '8', '.', '.', '.', '.', '6', '.'}, + {'8', '.', '.', '.', '6', '.', '.', '.', '3'}, + {'4', '.', '.', '8', '.', '3', '.', '.', '1'}, + {'7', '.', '.', '.', '2', '.', '.', '.', '6'}, + {'.', '6', '.', '.', '.', '.', '2', '8', '.'}, + {'.', '.', '.', '4', '1', '9', '.', '.', '5'}, + {'.', '.', '.', '.', '8', '.', '.', '7', '9'} + }; + System.out.println("Is board1 valid? " + validSudoku.isValidSudoku(board1)); // Expected output: true + + // Test case 2 + char[][] board2 = { + {'8', '3', '.', '.', '7', '.', '.', '.', '.'}, + {'6', '.', '.', '1', '9', '5', '.', '.', '.'}, + {'.', '9', '8', '.', '.', '.', '.', '6', '.'}, + {'8', '.', '.', '.', '6', '.', '.', '.', '3'}, + {'4', '.', '.', '8', '.', '3', '.', '.', '1'}, + {'7', '.', '.', '.', '2', '.', '.', '.', '6'}, + {'.', '6', '.', '.', '.', '.', '2', '8', '.'}, + {'.', '.', '.', '4', '1', '9', '.', '.', '5'}, + {'.', '.', '.', '.', '8', '.', '.', '7', '9'} + }; + System.out.println("Is board2 valid? " + validSudoku.isValidSudoku(board2)); // Expected output: false + } +} diff --git a/subjects/java/checkpoints/valid-sudoku/README.md b/subjects/java/checkpoints/valid-sudoku/README.md new file mode 100644 index 000000000..caf0b9061 --- /dev/null +++ b/subjects/java/checkpoints/valid-sudoku/README.md @@ -0,0 +1,71 @@ +## Valid Sudoku + +### Instructions + +Determine if a 9x9 Sudoku board is valid. Only the filled cells need to be validated according to the following rules: + +1. Each row must contain the digits 1-9 without repetition. +2. Each column must contain the digits 1-9 without repetition. +3. Each of the nine 3x3 sub-boxes of the grid must contain the digits 1-9 without repetition. + +The Sudoku board could be partially filled, where empty cells are filled with the character '.'. + +### Expected Class + +```java +public class ValidSudoku { + public boolean isValidSudoku(char[][] board) { + // Implementation to determine if the Sudoku board is valid + } +} +``` + +### Usage + +Here is a possible `ExerciseRunner.java` to test your class: + +```java +public class ExerciseRunner { + public static void main(String[] args) { + ValidSudoku validSudoku = new ValidSudoku(); + + // Test case 1 + char[][] board1 = { + {'5', '3', '.', '.', '7', '.', '.', '.', '.'}, + {'6', '.', '.', '1', '9', '5', '.', '.', '.'}, + {'.', '9', '8', '.', '.', '.', '.', '6', '.'}, + {'8', '.', '.', '.', '6', '.', '.', '.', '3'}, + {'4', '.', '.', '8', '.', '3', '.', '.', '1'}, + {'7', '.', '.', '.', '2', '.', '.', '.', '6'}, + {'.', '6', '.', '.', '.', '.', '2', '8', '.'}, + {'.', '.', '.', '4', '1', '9', '.', '.', '5'}, + {'.', '.', '.', '.', '8', '.', '.', '7', '9'} + }; + System.out.println("Is board1 valid? " + validSudoku.isValidSudoku(board1)); // Expected output: true + + // Test case 2 + char[][] board2 = { + {'8', '3', '.', '.', '7', '.', '.', '.', '.'}, + {'6', '.', '.', '1', '9', '5', '.', '.', '.'}, + {'.', '9', '8', '.', '.', '.', '.', '6', '.'}, + {'8', '.', '.', '.', '6', '.', '.', '.', '3'}, + {'4', '.', '.', '8', '.', '3', '.', '.', '1'}, + {'7', '.', '.', '.', '2', '.', '.', '.', '6'}, + {'.', '6', '.', '.', '.', '.', '2', '8', '.'}, + {'.', '.', '.', '4', '1', '9', '.', '.', '5'}, + {'.', '.', '.', '.', '8', '.', '.', '7', '9'} + }; + System.out.println("Is board2 valid? " + validSudoku.isValidSudoku(board2)); // Expected output: false + } +} +``` + +### Expected Output + +```shell +$ javac *.java -d build +$ java -cp build ExerciseRunner +Is board1 valid? true +Is board2 valid? false +$ +```