# Controleer of de gegeven lijst elk cijfer van 1 tot 9 hoogstens één keer bevat
# Je hoeft niet te controleren of de lijst enkel getallen bevat in het interval [1,9]
def is_correcte_lijst(lijst):
    frequentie = [0]*10
    for element in lijst:
        frequentie[element] += 1
    for aantal in frequentie:
        if aantal > 1:
            return False  
    return True

# hulpfunctie: kijk of een 3 x 3 blokje elk cijfer hoogstens één keer bevat
# bijkomende parameters: rij en kolomnummer linksboven
def is_correct_blokje(sudoku, start_rij, start_kolom):
    blokje = []
    for rijnummer in range(start_rij,start_rij + 3):
        for kolomnummer in range(start_kolom, start_kolom + 3):
            blokje.append(sudoku[rijnummer][kolomnummer])
    return is_correcte_lijst(blokje)


sudoku = [
    [5, 3, 4, 6, 7, 8, 9, 1, 2],
    [6, 7, 2, 1, 9, 5, 3, 4, 8],
    [1, 9, 8, 3, 4, 2, 5, 6, 7],
    [8, 5, 9, 7, 6, 1, 4, 2, 3],
    [4, 2, 6, 8, 5, 3, 7, 9, 1],
    [7, 1, 3, 9, 2, 4, 8, 5, 6],
    [9, 6, 1, 5, 3, 7, 2, 8, 4],
    [2, 8, 7, 4, 1, 9, 6, 3, 5],
    [3, 4, 5, 2, 8, 6, 1, 7, 8] 
]

print(0, 0, is_correct_blokje(sudoku, 0, 0))
print(0, 3, is_correct_blokje(sudoku, 0, 3))
print(0, 6, is_correct_blokje(sudoku, 0, 6))

print(3, 0, is_correct_blokje(sudoku, 3, 0))
print(3, 3, is_correct_blokje(sudoku, 3, 3))
print(3, 6, is_correct_blokje(sudoku, 3, 6))

print(6, 0, is_correct_blokje(sudoku, 6, 0))
print(6, 3, is_correct_blokje(sudoku, 6, 3))
print(6, 6, is_correct_blokje(sudoku, 6, 6))
