문제
완성된 9×9 크기의 수도쿠가 주어지면 정확하게 풀었으면 “YES", 잘 못 풀었으면 ”NO"를 출 력하는 프로그램을 작성하기
조건
9×9 크기의 보드가 있을 때, 각 행과 각 열, 그리고 9 개의 3×3 크기의 보드에 1부터 9까지의 숫자가 중복 없이 나타나도록 보드를 채우면 된다.
예를 들어 다음을 보자.

위 그림은 스도쿠를 정확하게 푼 경우이다.
각 행에 1부터 9까지의 숫자가 중복 없이 나오 고, 각 열에 1부터 9까지의 숫자가 중복 없이 나오고
각 3×3짜리 사각형(9개이며, 위에서 색 깔로 표시되었다)에 1부터 9까지의 숫자가 중복 없이 나오기 때문이다.
제한사항
첫 번째 줄에 완성된 9×9 스도쿠가 주어집니다.
첫째 줄에 “YES" 또는 ”NO"를 출력하세요.
문제풀이
a=[list(map(int, input().split())) for _ in range(9)]
ch1=set()
ch2=set()
ch3=set()
def check(a):
for i in range(9):
for j in range(9):
ch1.add(a[i][j])
ch2.add(a[j][i])
if len(ch1) != 9 or len(ch2) != 9:
return False
for i in range(3):
for j in range(3):
for k in range(3):
for l in range(3):
ch3.add(a[i*3+k][j*3+l])
if len(ch3) != 9:
return False
return True
if check(a):
print("YES")
else:
print("NO")'파이썬 알고리즘 풀이' 카테고리의 다른 글
| 22) 이분검색 (0) | 2021.10.22 |
|---|---|
| 21) 격자판 회문수 (0) | 2021.10.22 |
| 19) 봉우리 (0) | 2021.10.22 |
| 18) 곳감(모래시계) (0) | 2021.10.22 |
| 17) 사과나무(다이아몬드) (0) | 2021.10.22 |