본문 바로가기
코딩테스트

[프로그래머스] 스택/큐 - 올바른 괄호

by 박매트 2024. 1. 27.

 

내 답

def solution(s):
    answer = True
    store = []
    
    
    if s[0] == ')' or s[-1] == '(':
        return False
    elif len(s)//2 != len(s)/2:
        return False
    
    for i in s:
        if i == '(':
            store.append(i)
        else:
            try:
                store.pop()
            except IndexError:
                return False
            
    return not store

 

자꾸, 런타임 에러가 떠서 당황을 했다. . . 

) 으로 시작하거나, ( 으로 끝나면 바로 false를 반환했다.

따로 리스트를 만들어서, push/pop -> 스택구조를 사용하도록 하였다

 

근데, 계속 4번, 11번 런타임 오류가 나서...뭔가 싶었더니

더이상 pop 할 값이 없는 경우가 나타날 때 (리스트에 뺄 값이 없을 때)를 확인 안해준 것이다.

다른 사람 풀이 참고했다.. ㅋㅋㅋ

예외처리를 추가해줬더니...성공

 

다른 사람 답

def is_pair(s):
    st = list()
    for c in s:
        if c == '(':
            st.append(c)

        if c == ')':
            try:
                st.pop()
            except IndexError:
                return False

    return len(st) == 0

 

예외처리를 잘 써먹자!