1974-数独検証


問題の説明
リンク
問題を解く
問題の歩調に従う.
set関数が重複を許さない特徴を用いて,プローブ後に生成されるset関数の長さを調べる.
各検査行
  • はset関数に入れられ、比較長さが9未満の場合、result = 0の検査を停止する.
  • 1号課程をチェックし、3*3箱を対象とします.
  • コード#コード#
    T = int(input())
    for tc in range(1, T + 1):
        arr = [list(map(int, input().split())) for _ in range(9)]
        sdokuSet = set()
        result = 1
        for i in range(9):
            for j in range(9):
                sdokuSet.add(arr[i][j])
            if len(sdokuSet) < 9:
                result = 0
                break
            sdokuSet.clear()
    
        for j in range(9):
            for i in range(9):
                sdokuSet.add(arr[i][j])
            if len(sdokuSet) < 9:
                result = 0
                break
            sdokuSet.clear()
    
        for i in range(0, 9, 3):
            for j in range(i, i+3):
                for k in range(3):
                    sdokuSet.add(arr[j][k])
            if len(sdokuSet) < 9:
                result = 0
                break
            sdokuSet.clear()
        print(f'#{tc} {result}')