How to check if a 3x3 grid is a valid Sudoku grid in Go

1 Answer

0 votes
// 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!
 
*/

 



answered May 30, 2025 by avibootz
edited May 30, 2025 by avibootz

Related questions

...