만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

스도쿠 정답 검증

면접 대비

시간 제한5초메모리 제한512 MB

요약
완성된 N제곱 격자의 모든 행과 열, N×N 블록이 1부터 N제곱까지 숫자를 정확히 한 번씩 담았는지 판정합니다.
난이도

쉬움10점 중 3점

유형
행렬, 해시맵, 구현
정답자
아직 제출이 없습니다

문제

스도쿠는 혼자서 푸는 숫자 퍼즐이다. 9x9 격자에 숫자를 채우되, 각 행과 각 열, 그리고 서로 겹치지 않는 3x3 부분 격자 9개가 1부터 9까지를 한 번씩 담아야 한다. 격자는 처음에 일부만 채워져 있고 보통 답이 하나뿐이다.

크기가 N2×N2N^2 \times N^2인 완성된 스도쿠 격자가 주어진다. 이 격자가 올바른 답인지 판정하라. 올바른 답은 다음 세 조건을 모두 만족한다.

  • 각 행은 1부터 N2N^2까지를 한 번씩 담는다.
  • 각 열은 1부터 N2N^2까지를 한 번씩 담는다.
  • N2×N2N^2 \times N^2 격자를 서로 겹치지 않는 N×NN \times N 부분 격자 N2N^2개로 나눈다. 각 부분 격자는 1부터 N2N^2까지를 한 번씩 담는다.

퍼즐의 답이 유일한지는 따지지 않는다. 주어진 격자가 올바른 답인지만 확인하면 된다.

입력

첫 줄에 테스트 케이스의 개수 TT가 주어진다. 이어서 TT개의 테스트 케이스가 주어진다. 각 테스트 케이스의 첫 줄에는 정수 NN이 있다. 다음 N2N^2개의 줄에 완성된 스도쿠 격자가 주어지며, 각 줄에는 정수가 정확히 N2N^2개씩 있다. 입력의 정수는 모두 양수이고 1000보다 작다.

제한

  • 1≤T≤1001 \le T \le 100
  • 3≤N≤63 \le N \le 6

출력

각 테스트 케이스마다 Case #x: y 형식으로 한 줄씩 출력한다. x는 1부터 시작하는 테스트 케이스 번호이고, y는 격자가 올바른 답이면 Yes, 아니면 No이다. 채점은 대소문자를 구분하므로 yes나 no는 정답으로 인정하지 않는다.

예제1

  1. 예제 1

    입력
    3
    3
    5 3 4 6 7 8 9 1 2
    6 7 2 1 9 5 3 4 8
    1 9 8 3 4 2 5 6 7
    8 5 9 7 6 1 4 2 3
    4 2 6 8 5 3 7 9 1
    7 1 3 9 2 4 8 5 6
    9 6 1 5 3 7 2 8 4
    2 8 7 4 1 9 6 3 5
    3 4 5 2 8 6 1 7 9
    3
    1 2 3 4 5 6 7 8 9
    1 2 3 4 5 6 7 8 9
    1 2 3 4 5 6 7 8 9
    1 2 3 4 5 6 7 8 9
    1 2 3 4 5 6 7 8 9
    1 2 3 4 5 6 7 8 9
    1 2 3 4 5 6 7 8 9
    1 2 3 4 5 6 7 8 9
    1 2 3 4 5 6 7 8 9
    3
    5 3 4 6 7 8 9 1 2
    6 7 2 1 9 5 3 4 8
    1 9 8 3 4 2 5 6 7
    8 5 9 7 6 1 4 2 3
    4 2 6 8 999 3 7 9 1
    7 1 3 9 2 4 8 5 6
    9 6 1 5 3 7 2 8 4
    2 8 7 4 1 9 6 3 5
    3 4 5 2 8 6 1 7 9
    
    예상 출력
    Case #1: Yes
    Case #2: No
    Case #3: No