보물창고 블로그

SW Expert Academy 1974. 스도쿠 검증 본문

카테고리 없음

SW Expert Academy 1974. 스도쿠 검증

홋 메 2020. 1. 28. 14:03
728x90

문제 링크: https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV5Psz16AYEDFAUq&categoryId=AV5Psz16AYEDFAUq&categoryType=CODE

 

SW Expert Academy

SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!

swexpertacademy.com

스도쿠가 맞는지를 검증하는 것이다. 2중 for문을 통해 처음에 가로 세로를 탐색하고, 마지막에 sol함수를 통해서 3 X 3 칸에 1~9가 1개씩 있는지를 탐색하였다. 풀이 코드는 아래와 같다. 

t=int(input())
def sol(list1,list2,map1):
    result=1
    s=[0 for _ in range(9)]
    for i in list1:
        for j in list2:
            s[map1[i][j]-1]+=1
    if max(s)!=1 or min(s)!=1:
        result=0
    return result



for test in range(1,t+1):
    result=1
    map1=[]
    for _ in range(9):
        map1.append(list(map(int,input().split())))
    for i in range(9):
        s=[0 for _ in range(9)]
        for j in range(9):
            s[map1[i][j]-1]+=1
            s[map1[j][i]-1]+=1
        if max(s)!=2 or min(s)!=2:
            result=0
            break
    x=[[0,1,2],[3,4,5],[6,7,8]]
    for i in range(3):
        for j in range(3):
            if sol(x[i],x[j],map1)==0:
                result=0
                break
        if result==0:
            break
    print('#{} {}'.format(test,result))
Comments