• 카테고리

    질문 & 답변
  • 세부 분야

    알고리즘 · 자료구조

  • 해결 여부

    미해결

질문있습니다.

20.08.05 18:05 작성 조회수 112

0

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

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

답변을 작성해보세요.

0

안녕하세요^^

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

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

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

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