• 카테고리

    질문 & 답변
  • 세부 분야

    알고리즘 · 자료구조

  • 해결 여부

    해결됨

not stact의 위치 질문입니다.

23.03.19 23:58 작성 조회수 327

2

s= "[({"

def re():
    arr=[]
    for i in s:
        if i =="[":
            arr.append("]")
        elif i == "{":
            arr.append("}")
        elif i == "(":
            arr.append(")")
        elif not arr or arr.pop() != i:
            print(arr)
            return False
    if not arr:
        return True
    else:
        return False
    
print(re())

s= "[({" 이라고 할때 not arr의 위치 질문입니다.

마지막 elif문에 not arr조건은 가지 못하니까(for문이 이미 끝났기 때문에) 마지막 elif문이 아니라 for문이 끝나고 arr이 비어 있는지 확인해야 하는거아닌가요??

s= "[({"

def re():
    arr=[]
    for i in s:
        if i =="[":
            arr.append("]")
        elif i == "{":
            arr.append("}")
        elif i == "(":
            arr.append(")")
        elif arr.pop() != i:
            return False
    if not arr:
        return True
    else:
        return False
    
print(re())

위에 식처럼 해야하는 거 아닌지 궁금합니다.

답변주시면 정말 감사하겠습니다.

답변 1

답변을 작성해보세요.

1

s = "])}"


def re():
    arr = []
    for i in s:
        if i == "[":
            arr.append("]")
        elif i == "{":
            arr.append("}")
        elif i == "(":
            arr.append(")")
        elif arr.pop() != i:
            return False
    if not arr:
        return True
    else:
        return False


print(re())

 

혹시 예시를 이렇게 해보시겠어요!!?

 

그러면 왜 필요한지 알 수 있을거에요!!

코드를 한 줄 한줄 분석해보고 왜 에러가 뜨는지 이해하시면 도움 많이 될거에요.

물론 설명을 드릴 수 있지만, 그냥 설명만 듣고는 실력이 많이 늘기 어렵더라구요.

이건 힌트를 드렸으니!! 직접 해보시길 바랄게요 ㅎㅎ

 

더 궁금하신점 있으시면 언제든지 질문 또 주세요