본문 바로가기
코딩테스트/SWExpertAcademy

[Python] SWEA 1974 - 스도쿠 검증

by Ssubini 2022. 4. 13.

[2022.02.18]

T = int(input())

def check(li):
    nums = [0]*10
    for i in range(len(li)):
        nums[li[i]] += 1
        if nums[li[i]] > 1:
            return 0
    return 1

def makeChecklist3(y,x):
    checklist=[]
    for i in range(3):
        for j in range(3):
            checklist.append(board[y+i][x+j])
    return checklist

for tc in range(T):
    board = [list(map(int, input().split())) for _ in range(9)]
    # 가로 check
    flag = 1
    result = 0
    for i in range(9):
        if check(board[i]) == 0 :
            flag = 0
            break
    if flag == 0:
        print(f'#{tc+1} 0')
        continue

    # 세로 check
    for j in range(9):
        checklist = []
        for i in range(9):
            checklist.append(board[i][j])
        if check(checklist) == 0:
            flag = 0
            break
    if flag == 0:
        print(f'#{tc+1} 0')
        continue

    # 3x3 check
    for i in range(0,9,3):
        for j in range(0,9,3):
            if check(makeChecklist3(i,j)) == 0:
                flag = 0
                break
        if flag == 0:
            break
    if flag == 0:
        print(f'#{tc+1} 0')
    else:
        print(f'#{tc+1} 1')

댓글