인프런 커뮤니티 질문&답변
해시맵을 사용해서 풀어보았습니다 혹시 예외나 틀린 부분이 있을까요
작성
·
399
·
수정됨
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')답변
답변을 기다리고 있는 질문이에요
첫번째 답변을 남겨보세요!





