// 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.
package main
import (
"fmt"
)
// isValidSudoku3x3Grid checks if a 3x3 grid is a valid Sudoku subgrid.
func isValidSudoku3x3Grid(grid [][]int) bool {
if len(grid) != 3 || len(grid[0]) != 3 {
return false // Ensure it's a 3x3 grid
}
seen := make(map[int]bool)
for _, row := range grid {
for _, num := range row {
if num < 1 || num > 9 || seen[num] {
return false // Invalid if the number is out of range or repeated
}
seen[num] = true
}
}
return true // Valid if all numbers 1-9 appear exactly once
}
func main() {
grid := [][]int{
{5, 3, 4},
{6, 7, 2},
{1, 9, 8},
}
if isValidSudoku3x3Grid(grid) {
fmt.Println("The grid is a valid Sudoku grid!")
} else {
fmt.Println("The grid is NOT a valid Sudoku grid!")
}
}
/*
run:
The grid is a valid Sudoku grid!
*/