SWEA (SW Expert Academy)/D2
[SWEA/D2] 1974 스도쿠 검증
hellosonic
2023. 4. 21. 19:34
문제 바로가기
SW Expert Academy
SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!
swexpertacademy.com
나의 코드 및 설명
t = int(input())
for test_case in range(1, t+1):
board = []
for _ in range(9):
board.append(list(map(int, input().split())))
must = list(range(1,10))
line_check = -1
for i in range(9):
garo_check = []
sero_check = []
for j in range(9):
garo_check.append(board[i][j])
sero_check.append(board[j][i])
garo_check.sort()
sero_check.sort()
if garo_check == must and sero_check == must:
line_check = 1
else:
line_check = 0
break
box_check = -1
for i in range(3): # 0, 1, 2 / 0, 3, 6이 되어야 함.
for j in range(3):
temp_list = []
for k in range(3):
temp_list += board[(i*3)+k][j*3:(j*3)+3]
temp_list.sort()
if temp_list == must:
box_check = 1
else:
box_check = 0
break
#반드시 상위 for문에 대해 break 처리 해주어야 함
if box_check == 0:
break
if line_check == 1 and box_check == 1:
print("#{} {}".format(test_case, 1))
else:
print("#{} {}".format(test_case, 0))
피드백
다중 for문에서 하위 for문에 대해 break 처리를 할 시 반드시 상위 for문에서도 break 처리를 해주어야 한다는 것을 명심하자.