BRACKET52 문제 python 컴파일 에러...

  • rosemble
    rosemble

    문제를 풀기전 미리 로컬에서 돌려보고 올리는 편인데
    특별하게 문제가 없어보임에도 컴파일에러가 자꾸 발생해 질문드립니다.
    브라켓의 순서가 맞는지를 체크하는 문제이며 URL은 다음과 같습니다.
    https://algospot.com/judge/problem/read/BRACKETS2

    c = int(input())
    d = { '(':')', '[':']','{':'}' }
    for x in range(0,c):
        br = list(input())
        b = "YES"
        st = []
        if len(br)%2.0 != 0.0 or len(br) == 0:
            print("NO")
            continue    
        for x in br:
            if x in d.keys():
                st.append(x)
            else:
                if d[st[-1]] != x:
                    b = "NO"
                    break
                else:
                    del st[-1]
        print(b)
    

    python의 딕셔너리를 활용해서 매칭되는 걸 찾아서 스택처럼 넣었다가 쌍이 맞으면 맨 뒤를 pop 시키는 구조로 되어있습니다.
    제가 놓친 부분이 있다면 조언 부탁드립니다.


    9년 전
7개의 댓글이 있습니다.
  • Being
    Being

    런타임 오류는 컴파일 에러가 아닙니다.


    9년 전 link
  • rosemble
    rosemble

    네 제가 용어를 착각했네요. 컴파일이면 로컬에서도 안되었을테니..
    RTE (nonzero return code)
    라는 에러만 계속 보게되는데 이걸로 검색을 해봐도 제가 놓친게 있는지 찾기가 힘듭니다. 가벼운 조언이라도 부탁드릴게요. ㅜ


    9년 전 link
  • riceluxs1t
    riceluxs1t

    중간에 st 이 empty 된 경우에는 어떻게 될까요


    9년 전 link
  • riceluxs1t
    riceluxs1t

    ((())))


    9년 전 link
  • rosemble
    rosemble

    //riceluxs1t 입력값의 길이를 검사하는 루틴도 넣어봤는데 역시 안되네요..-_-a
    테스트 케이스 입력값으로 뭘받는지 궁금....


    9년 전 link
  • Being
    Being

    riceluxs1t님이 지적하신 코드의 오류가 무엇인지 잘못 생각하신 것 같네요. 이런 입력에서도 똑같이 잘못 작동하겠죠?

    )(
    


    9년 전 link
  • rosemble
    rosemble

    아 좀 더 섬세하게 생각했어야했는데 그러질 못했네요.
    도움 주신 분들 감사합니다. ^^


    9년 전 link
  • 정회원 권한이 있어야 커멘트를 다실 수 있습니다. 정회원이 되시려면 온라인 저지에서 5문제 이상을 푸시고, 가입 후 7일 이상이 지나셔야 합니다. 현재 문제를 푸셨습니다.