본문 바로가기

코딩테스트 with PYTHON

[python] 코딩테스트 대비 - 스토쿠 검사

문제)

 

답안코드)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
import sys
#sys.stdin=open("input.txt", "r")
def check(a):
    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:#합이 9가 아니면 중복 숫자가 있는것
            return False
        
    #3x3 9개 검사
    for i in range(3):#9개 3x3 중 1개 선택
        for j in range(3):#9개 3x3 중 1개 선택
            ch3=[0]*10
            for k in range(3):#선택된 3x3메트릭스 요소 접근
                for s in range(3):#선택된 3x3메트릭스 요소 접근
                    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")
cs