일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 2020 카카오 인턴십
- 19238번
- 프로그래머스
- 감소하는 수
- SW ExpertAcademy
- 14499번
- 1038번
- 16234번
- 9095번
- 미세먼지 안녕!
- 베스트엘범
- 17144번
- 15686번
- 백준 알고리즘
- 빛의 경로 사이클
- 12865번
- 어른 상어
- 보석 쇼핑
- 키패드 누르기
- HTML 기초
- 스타트 택시
- 파이썬
- QueryDSL 기초
- 수식 최대화
- 경주로 건설
- 거울 설치
- SW Expert Academy
- python
- 1789번
- 12869번
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