문제
- 9X9 스토쿠가 정확하게 풀어졌는지를 확인하면 되는 문제이다.
- 스토쿠가 정확하게 풀어졌는지를 확인하기 위해서는 행, 렬, 3X3 부분을 확인해 겹치는 숫자를 사용하지 않았는지를 확인해주면 된다.
문제 풀이
import sys
sys.stdin = open("input.txt", "r")
def check(sudoku):
for i in range(9):
ch1 = [0]*10
ch2 = [0]*10
for j in range(9):
ch1[sudoku[i][j]] = 1
ch2[sudoku[j][i]] = 1
if sum(ch1) != 9 or sum(ch2) != 9:
return False
#3X3 확인을 위한 i,j로 큰 범위 설정
for i in range(3):
for j in range(3):
ch3 = [0] * 10
for k in range(3):
for s in range(3):
ch3[sudoku[i*3+k][i*3+s]] = 1
if sum(ch3) != 9:
return False
return True
sudoku = [list(map(int,input().split())) for _ in range(9)]
if check(sudoku):
print("YES")
else:
print("NO")
3X3 반복문의 반복 과정
'자료구조와 알고리즘 > 개인적인 코딩테스트 관련 풀이' 카테고리의 다른 글
[이분탐색(결정알고리즘)][그리디 알고리즘] - 이분 검색 (0) | 2022.07.08 |
---|---|
[탐색][시뮬레이션] - 격자판 회문수(2차원 List) (0) | 2022.07.07 |
[탐색][시뮬레이션] - 봉우리(2차원 List) (0) | 2022.07.07 |
[탐색][시뮬레이션] - 곶감(2차원 List) (0) | 2022.07.06 |
[탐색][시뮬레이션] - 사과나무(2차원 List) (0) | 2022.07.06 |