일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | |
7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 | 22 | 23 | 24 | 25 | 26 | 27 |
28 | 29 | 30 | 31 |
Tags
- 경주로 건설
- 베스트엘범
- 2020 카카오 인턴십
- 어른 상어
- 15686번
- 거울 설치
- 프로그래머스
- 12865번
- 12869번
- 백준 알고리즘
- 감소하는 수
- 19238번
- 빛의 경로 사이클
- 1789번
- QueryDSL 기초
- 9095번
- SW ExpertAcademy
- 스타트 택시
- 파이썬
- 16234번
- HTML 기초
- 17144번
- SW Expert Academy
- 14499번
- python
- 키패드 누르기
- 수식 최대화
- 미세먼지 안녕!
- 1038번
- 보석 쇼핑
Archives
- Today
- Total
보물창고 블로그
SW Expert Academy 1974. 스도쿠 검증 본문
728x90
SW Expert Academy
SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!
swexpertacademy.com
스도쿠가 맞는지를 검증하는 것이다. 2중 for문을 통해 처음에 가로 세로를 탐색하고, 마지막에 sol함수를 통해서 3 X 3 칸에 1~9가 1개씩 있는지를 탐색하였다. 풀이 코드는 아래와 같다.
t=int(input())
def sol(list1,list2,map1):
result=1
s=[0 for _ in range(9)]
for i in list1:
for j in list2:
s[map1[i][j]-1]+=1
if max(s)!=1 or min(s)!=1:
result=0
return result
for test in range(1,t+1):
result=1
map1=[]
for _ in range(9):
map1.append(list(map(int,input().split())))
for i in range(9):
s=[0 for _ in range(9)]
for j in range(9):
s[map1[i][j]-1]+=1
s[map1[j][i]-1]+=1
if max(s)!=2 or min(s)!=2:
result=0
break
x=[[0,1,2],[3,4,5],[6,7,8]]
for i in range(3):
for j in range(3):
if sol(x[i],x[j],map1)==0:
result=0
break
if result==0:
break
print('#{} {}'.format(test,result))
Comments