Part2.10_탐색&시뮬레이션_스도쿠 검사

Eugenius1st·2022년 1월 10일
0

Python_algorithm

목록 보기
5/83

스도쿠 검사

내가 생각한 코드


가로 세로밖에 못했어요 ㅎㅎ..

선생님 코드

#1. Alt+W+N 입력하고 Alt+W+V :

import sys
sys.stdin = open("input.txt", "rt")

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:
                return False # 함수를 만들어 False리턴하게 했다..!!
    for i in range(3): #4중 for문 허용 가능이네 ㅋㅋㅋ
        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문 많이 만들었어라도 했었어야됐네....

앞으로는 죽이되든 밥이되든 결과는 완성시켜보자..
그리고 sum 쓰신거 유념하자 ! 그리고
나는
tmp = a[i][j]
ch1[tmp] += 1 이랬는데, 선생님과 다른점은
a[i][j] 는 tmp에 저장하지 않고 ch1[a[i][j]] 한번에 인덱스에 넣으신 것과
'+1' 해서 1보다 클 경우를 찾은게 아니라
ch1[a[i][j]] = 1 해서 sum을 사용하여 sum(ch1)!=9 일 경우를 찾으심... 훨 낫다 이게 ㅠㅠ

profile
최강 프론트엔드 개발자가 되고싶은 안유진 입니다

0개의 댓글