본문 바로가기

스터디 1일 1커밋

240303 [SWEA] 1974. 스도쿠 검증

 

https://swexpertacademy.com/main/code/problem/problemSubmitHistory.do?contestProbId=AV5Psz16AYEDFAUq

 

SW Expert Academy

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

swexpertacademy.com


나의 코드

T = int(input())
for t in range(T):
    arr = [list(map(int, input().split())) for _ in range(9)]

    ans = 1
    for r in range(9):
        sum_c = 0
        sum_r = 0
        for c in range(9):
            sum_c += arr[r][c]
            sum_r += arr[c][r]
        if sum_c != 45 or sum_r != 45:
            ans = 0
            break

    flag = 0
    for r in range(0, 9, 3):
        for c in range(0, 9 ,3):
            sum_v = 0
            for i in range(3):
                for j in range(3):
                    sum_v += arr[r+i][c+j]
            if sum_v != 45:
                ans = 0
                flag = 1
                break
        if flag:
            break

    print(f'#{t+1} {ans}')

 

결과


백준에 있는 빙고 문제를 풀고 나니 그렇게 어렵게 느껴졌던 스도쿠검증 문제가 조금은 쉽게 느껴졌다. 가로줄, 세로줄, 3x3의 합을 각각 45이 안될 때 바로 ans에 0을 할당하고 반복문을 빠져나가는 방식으로 했다. 미량이와 가원이는 카운팅리스트를 만들어서 풀었던 것 같은데 나중에 생각나면 그렇게도 풀어봐야겠다. 일단은 다른 문제부터 풀어야지~~~