// Sudoku solution must satisfy all of the following rules:
// Each of the digits 1-9 must occur once in each row.
// Each of the digits 1-9 must occur once in each column.
// Each of the digits 1-9 must occur once in each 3x3 grid.
import scala.collection.mutable.HashSet
object SudokuValidator {
def isValidSudoku3x3Grid(grid: Array[Array[Int]]): Boolean = {
if (grid.length != 3 || grid(0).length != 3) {
return false // Ensure it's a 3x3 grid
}
val seen = HashSet[Int]()
for (row <- grid) {
for (num <- row) {
if (num < 1 || num > 9 || seen.contains(num)) {
return false // Invalid if the number is out of range or repeated
}
seen.add(num)
}
}
true // Valid if all numbers 1-9 appear exactly once
}
def main(args: Array[String]): Unit = {
val grid = Array(
Array(5, 3, 4),
Array(6, 7, 2),
Array(1, 9, 8)
)
if (isValidSudoku3x3Grid(grid)) {
println("The grid is a valid Sudoku grid!")
} else {
println("The grid is NOT a valid Sudoku grid!")
}
}
}
/*
run:
The grid is a valid Sudoku grid!
*/