가로 줄의 스도쿠 성립 여부
세로 줄의 스도쿠 성립 여부
박스의 스도쿠 성립 여부
인덱스 조작을 통한 접근, 각 성립 여부를 확인하기 위한 리스트
한 번이라도 틀리는 경우 더 이상 검사 필요 없다
이중 반복문 탈출
#정답일 경우 1, 오답일 경우 0
T = int(input())
result = []
for t in range(T):
testcase = []
for _ in range(9):
arr = list(map(int, input().split()))
testcase.append(arr)
verify = 1
breaker = False
for i in range(9):
row_verify = [] #가로 검증
col_verify = [] #세로 검증
box_verify = [] #3*3 박스 검증
for j in range(9):
if testcase[i][j] not in row_verify and \
testcase[j][i] not in col_verify and \
testcase[i//3 * 3 + j % 3][i//3 * 3 + j//3] not in box_verify:
row_verify.append(testcase[i][j])
col_verify.append(testcase[j][i])
box_verify.append(testcase[i//3 * 3 + j % 3][i//3 * 3 + j//3]) #3*3 box를 차례로 검사하기 위한 인덱스 접근
else:
verify = 0 #한번이라도 틀리면 더 이상 검사할 필요 없다.
breaker = True
break
if breaker: #이중 반복문 탈출
break
result.append(verify)
for t in range(T):
print("#{} {}".format((t+1), result[t]))