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

1 Answer

0 votes
import Foundation

// 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.

func isValidSudoku3x3Grid(_ grid: [[Int]]) -> Bool {
    guard grid.count == 3, grid[0].count == 3 else {
        return false // Ensure it's a 3x3 grid
    }

    var seen = Set<Int>()
    for row in grid {
        for num in row {
            if num < 1 || num > 9 || seen.contains(num) {
                return false // Invalid if the number is out of range or repeated
            }
            seen.insert(num)
        }
    }

    return true // Valid if all numbers 1-9 appear exactly once
}

let grid: [[Int]] = [
    [5, 3, 4],
    [6, 7, 2],
    [1, 9, 8]
]

if isValidSudoku3x3Grid(grid) {
    print("The grid is a valid Sudoku grid!")
} else {
    print("The grid is NOT a valid Sudoku grid!")
}

 
 
/*
run:
 
The grid is a valid Sudoku grid!

*/

 



answered May 30, 2025 by avibootz

Related questions

...