[SW Expert Academy, SWEA 1974] 스도쿠 검증 (python)
Problem Solving/SWEA

[SW Expert Academy, SWEA 1974] 스도쿠 검증 (python)

728x90

https://swexpertacademy.com/main/code/problem/problemDetail.do?problemLevel=2&contestProbId=AV5Psz16AYEDFAUq&categoryId=AV5Psz16AYEDFAUq&categoryType=CODE&problemTitle=&orderBy=FIRST_REG_DATETIME&selectCodeLang=ALL&select-1=2&pageSize=10&pageIndex=2

 

SW Expert Academy

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

swexpertacademy.com


※ SW Expert 아카데미의 문제를 무단 복제하는 것을 금지합니다.

728x90

T = int(input())

for test_case in range(1, T + 1):
    sudoku = [list(map(int, input().split())) for _ in range(9)]

    isSudoku = 1
    #가로줄
    for i in range(9):
        #set의 특성을 이용해서 중복 제거 후 list로 변환
        arr = list(set(sudoku[i]))
        #중복이 있어서 arr의 길이가 줄어들었다면
        if len(arr) != 9:
            isSudoku = 0

    #세로줄
    #list를 90도 회전해서 확인
    sudoku_zip = list(zip(*sudoku[::-1]))
    for i in range(9):
        arr = list(set(sudoku_zip[i]))
        if len(arr) != 9:
            isSudoku = 0

    #3x3 확인
    for i in range(0, 9, 3):
        for j in range(0, 9, 3):
            arr = [sudoku[i][j], sudoku[i][j + 1], sudoku[i][j + 2],
            sudoku[i + 1][j], sudoku[i + 1][j + 1], sudoku[i + 1][j + 2],
            sudoku[i + 2][j], sudoku[i + 2][j + 1], sudoku[i + 2][j + 2]]

            arr = list(set(arr))
            if len(arr) != 9:
                isSudoku = 0

    print("#{} {}".format(test_case, isSudoku))

 

728x90