인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

Inflearn Community Q&A

onejunu's profile image
onejunu

asked

Introduction to Python Algorithm Problem Solving (Coding Test Preparation)

10. Stoku Test

반례 있습니다

Written on

·

187

2

2 4 3 6 2 8 5 7 8

4 7 2 1 3 9 4 6 9

9 8 6 7 5 4 2 3 1

3 9 1 5 4 2 7 8 6

4 6 8 9 1 7 3 5 2

7 2 5 8 6 3 9 1 4

2 3 7 4 8 1 6 9 5

6 1 9 2 7 5 8 4 3

8 5 4 3 9 6 1 2 7

선생님 강의 열심히 듣고 있습니다. 굉장히 유익합니다만 

이렇게 입력 했을 때, YES 라고 나옵니다. 첫번째 행에 2가 중복임에도 불구하고 말입니다.  모든 열과 행의 합이 45라는 것은 모든 중복을 체크하지는 못하는 것 같습니다. 물론 문제의 취지는 탐색하는 방법을 공부하는 것이지만요. 그래도 합으로 푸는 건 아닌거 같아 질문 드립니다! 감사합니다!

python코테 준비 같이 해요!

Answer 1

0

codingcamp님의 프로필 이미지
codingcamp
Instructor

반례를 잡지 못했네요ㅜㅜ  감사합니다~~

 ch 리스트를 써서 짜보았습니다. 

import sys
sys.stdin=open("input.txt", "r")
def check(a):
    for i in range(9):
        ch1=[0]*10
        ch2=[0]*10
        for j in range(9):
            ch1[a[i][j]]=1
            ch2[a[j][i]]=1
        if sum(ch1)!=9 or sum(ch2)!=9:
            return False
    for i in range(3):
        for j in range(3):
            ch3=[0]*10
            for k in range(3):
                for s in range(3):
                    ch3[a[i*3+k][j*3+s]]=1
            if sum(ch3)!=9:
                return False
    return True

a=[list(map(int, input().split())) for _ in range(9)]
if check(a):
    print("YES")
else:
    print("NO")
onejunu's profile image
onejunu

asked

Ask a question