질문있습니다.

미해결질문
이성길 프로필

선생님 강의를 잘 보고 배워나가고 있습니다. 

list말고 set의 특성을 사용해서 짜보았는데  가능한지 그리고 가능한데 현재 돌아 가지 않는데 틀린 부분이 무엇 인지 궁금합니다.

N=[list(map(int,input().split())for _ in range(9))]
a,b={},{}
for i in range(9):
    for j in range(9):
        a.add(N[i][j])
        b.add(N[j][i])
    if(len(a)!=9):
        print('NO')
        break
    if(len(a)==9):
        a={}
    if(len(b)!=9):
        print('NO')
        break
    if(len(b)==9):
        b={}
       
for x in range(0,6,3):        
    for y in range(x,x+3):
        for z in range(x,x+3):
            a.add(N[y][z])
    if(len(a)!=9):
        print('NO')
        break
    if(len(a)==9):
        a={}
if(len(a)==0):
    print('YES')
김태원 프로필
김태원 1달 전

안녕하세요^^

1. a={} 와 같이 선언하면 set 자료구조가 아니라 딕셔너리입니다. set은 a=set() 이렇게 선언해야 합니다.

2. 입력을 이차원 리스트로 읽을 때는 N=[list(map(int,input().split()))for _ in range(9)] 

     list 함수의 괄호를 for문 전에 닫아주어야 2차원 리스트로 읽습니다. 

위 두 가지를 고쳐야 일단 에러가 나지 않습니다. 그 다음 100점이 나오지 않는 논리적인 것은 스스로 디버그하면서 고쳐보세요.

지식공유자 되기
많은 사람들에게 배움의 기회를 주고,
경제적 보상을 받아보세요.
지식공유참여
기업 교육을 위한 인프런
“인프런 비즈니스” 를 통해 모든 팀원이 인프런의 강의들을
자유롭게 학습하는 환경을 제공하세요.
인프런 비즈니스