BRACKETS2 문제 오답문의 드립니다

  • memorys
    memorys

    연속으로 3건이나 질문글을 올리게 되어 양해 부탁드립니다..
    일단 개인적으로는 답을 확인할 수 있었기에 채점은 포기하고 다음으로 넘어갈까도 싶었으나..
    도움을 받아 문제를 해결하고 이해할 수 있다면 그편이 나을듯하여 연속으로 올립니다..

    BRACKETS2
    https://algospot.com/judge/problem/read/BRACKETS2

    어렵지 않은 문제라 생각하였기에 오답의 이유를 더더욱이 알 수가 없었습니다..ㅠ
    풀이 방식은

    1. 각 괄호에 맞는 짝을 사전에 지정
    2. 입력된 괄호 배열에서 하나씩 꺼내 새로운 괄호가 기존 괄호의 짝이면 기존 괄호를 결과배열에서 제거. 짝이 아니면 결과배열에 해당 괄호를 추가
    3. 입력 괄호 배열의 끝까지 판단한 후 결과배열의 크기가 0이면 통과. 0보다 크면 실패

    몇가지 샘플을 만들어 테스트해보았습니다만 문제를 발견하지를 못하였습니다.
    길지 않은 코드속에서 무엇이 문제일까요..

    코드 블럭

    bracketDictionary = {'(': ')', ')': '(', '[': ']', ']': '[', '{': '}', '}': '{', }
    for lll in range(input()):
        inputData = raw_input()
        bracketList = []
        for bracket in inputData:
            if bracketList.__len__() == 0 or bracketDictionary[bracket] != bracketList[bracketList.__len__() - 1]:
                bracketList.append(bracket)
            else:
                del bracketList[bracketList.__len__() - 1]
        if bracketList.__len__() == 0:
            print 'YES'
        else:
            print 'NO'
    

    파이썬 2.7, 파이참 사용


    3년 전
2개의 댓글이 있습니다.
  • JongMan
    JongMan

    }{)(][ 잘 나오나요? ;)


    3년 전 link
  • memorys
    memorys

    아아아아ㅠㅠㅠㅠㅠㅠㅠㅠ
    딴에는 테스트샘플로 만든다고 만들어서 해본게 다 여는괄호로 시작했었네요..
    감사합니다 !!


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