인프런 커뮤니티 질문&답변

코딩먹는하마님의 프로필 이미지
코딩먹는하마

작성한 질문수

코딩테스트 [ ALL IN ONE ]

[코테 적용] 👉 LIFO 1번 째 문제

not stact의 위치 질문입니다.

해결된 질문

작성

·

374

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())

 

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

 

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

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

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

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

 

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

 

 

코딩먹는하마님의 프로필 이미지
코딩먹는하마

작성한 질문수

질문하기