SSAFY/SWEA

[SWEA] #1974. 스도쿠 검증_파이썬

728x90
반응형

풀기 전 생각해보기😮

  • 이차원 배열 : 가로 탐색, 세로 탐색, 3x3 탐색
  • 가로 탐색과 세로 탐색을 진행했을 때 이상이 없을 때, 모든 3x3 탐색(9번)을 진행해야 할까? 

 


풀이🛫

T = int(input())

for _ in range(T):
    sdoku = [list(map(int, input().split())) for i in range(9)]
    li = []
    check = 1

    # 가로 탐색
    for i in range(9):
        d = {}
        for j in range(9):
            if sdoku[i][j] not in d:
                d[sdoku[i][j]] = 1
            else:
                d[sdoku[i][j]] += 1
        for i in d:
            if d[i] > 1:
                check = 0

    # 세로 탐색
    for i in range(9):
        d = {}
        for j in range(9):
            if sdoku[j][i] not in d:
                d[sdoku[j][i]] = 1
            else:
                d[sdoku[j][i]] += 1
        for i in d:
            if d[i] > 1:
                check = 0

    # 3x3 격자 탐색
    d = {}
    for k in range(3):
        for l in range(3):
            if sdoku[k][l] not in d:
                d[sdoku[k][l]] = 1
            else:
                d[sdoku[k][l]] += 1
    for k in d:
        if d[k] > 1:
            check = 0

    print('#'+str(_+1), check)

 

핵심 정리🎁

  • 질문 : 가로 탐색, 세로 탐색이 완료하고, 첫 번째 3x3 구역만 탐색을 진행했을 때 이상이 없다면 전체에 이상이 없다고 볼 수 있는가?

 

링크💎

 

SW Expert Academy

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

swexpertacademy.com

 

후기 😎

  • 뒷걸음질 치다 정답을 맞춘 격이라.. 꼭 질문하고 궁금증을 해결하도록 하자.
  • 전체 3x3을 탐색하는 방법도 찾아보기