작성
·
354
·
수정됨
0
# 스도쿠 제대로 풀었는지 검사하는 알고리즘
import sys
sys.stdin = open("./탐색&시뮬레이션/스도쿠.txt", 'r')
n = 9
def solution(sudoku):
for i in range(len(sudoku)):
rawTable = {}
colTable = {}
for j in range(n):
if sudoku[i][j] in rawTable or sudoku[j][i] in colTable:
return False
else:
rawTable[sudoku[i][j]] = sudoku[i][j]
colTable[sudoku[j][i]] = sudoku[j][i]
# 이제 3*3 검사도 하자
for i in range(3):
for j in range(3):
matrixTable = {}
for k in range(3):
for s in range(3):
if sudoku[i*3+k][i*3+s] in matrixTable:
return False
else:
matrixTable[sudoku[i*3+k][i*3+s]] = sudoku[i*3+k][i*3+s]
return True
sudoku = [list(map(int, input().split())) for _ in range(n)]
if solution(sudoku):
print('Yes')
else:
print('No')
답변