스도쿠 검사
문제 정보는 인프런의 파이썬 알고리즘 문제풀이 코딩테스트에 있습니다!
문제풀이
def check(a):
# 가로, 세로 1~9 다 있는지 체크하는 for문
for i in range(9):
ch1 = [0]*10
ch2 = [0]*10
for j in range(9):
ch1[a[i][j]] = 1
ch2[a[j][i]] = 1
if sum(ch1)!=9 or sum(ch2)!=9:
return False
# 9칸 1~9까지 체크하는 for문
for i in range(3):
for j in range(3):
ch3 = [0]* 10
for k in range(3):
for s in range(3):
ch3[a[i*3+k][j*3+s]]=1
if sum(ch3)!=9:
return False
return True
a = [list(map(int, input().split())) for _ in range(9)]
if check(a):
print('YES')
else:
print('NO')
이 모든걸 for문으로 해결하니 놀라울뿐….
4중 for문 처음본 것 같다
4중 for문은 2차원배열로 가로 세로 겨우 확인하는 것을 보면 왜 4중 for문이 필요한지 단박에 이해될 듯!