스도쿠

시간 제한1초메모리 제한128 MB

요약
0으로 표시된 빈칸 다섯 개를 채워 각 행, 열, 3x3 박스에 1부터 9까지가 한 번씩 들어가도록 9x9 스도쿠를 완성한다.
난이도

보통10점 중 5점

유형
백트래킹, 구현, 완전 탐색, 재귀
정답자
아직 제출이 없습니다

문제

스도쿠는 아홉 개의 3×33 \times 3 칸으로 나뉜 9×99 \times 9 격자에서 하는 게임이다. 각 가로줄, 각 세로줄, 그리고 각 3×33 \times 3 칸에 11부터 99까지의 숫자가 정확히 한 번씩 들어가도록 격자를 모두 채워야 한다.

스도쿠 문제는 9×99 \times 9 격자로 주어지며, 숫자가 채워진 칸은 그 숫자로, 빈 칸은 00으로 표시된다. 이러한 문제가 주어졌을 때 스도쿠를 푸는 프로그램을 작성하시오.

입력

첫째 줄에 테스트 케이스의 개수가 주어진다. 각 테스트 케이스는 스도쿠 격자를 나타내는 99개의 줄로 이루어지며, 각 줄은 00부터 99까지의 숫자 99개로 된 문자열이다. 여기서 00은 빈 칸을 뜻한다. 각 테스트 케이스에는 항상 정확히 다섯 개의 00이 주어진다.

출력

규칙을 어기지 않고서는 격자를 완성할 수 없는 경우에는

Could not complete this grid.

를 출력한다.

풀 수 있는 경우에는 입력과 같은 형식으로 완성된 격자를 99개의 줄에 걸쳐 출력한다. 연속한 테스트 케이스 사이에는 빈 줄을 출력한다. 풀 수 있는 경우, 입력은 항상 정답이 유일하도록 주어진다.

예제1

  1. 예제 1

    입력
    2
    481253697
    267948105
    539671204
    654389712
    908704563
    173562849
    702136958
    315897426
    896425371
    481253697
    267948105
    539671284
    654289710
    908704562
    173562849
    702136958
    315897426
    896425371
    
    예상 출력
    481253697
    267948135
    539671284
    654389712
    928714563
    173562849
    742136958
    315897426
    896425371
    
    Could not complete this grid.