프로그래머스/Lv.2

[Python] 프로그래머스 올바른 괄호

MINU.SHINNNN 2024. 8. 7. 02:47

https://school.programmers.co.kr/learn/courses/30/lessons/12909?language=python3

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

풀이

괄호가 올바르게 짝지어져있는지 판별해야 하는 문제입니다. 

 

아이디어는 '('가 나오면 list나 deque에 append 해주고 ')'가 나오면 pop 해주는 것입니다.

 

모든 문자열에 대해 이를 진행한뒤 list, deque가 비어있는지 판단해주면 올바르게 괄호를 짝지었는지 판별할 수 있습니다. 

 

이때, stk이 비어있는 상태에서 pop 을 하는 경우 에러가 발생하므로 try, except 구문을 사용하여 예외처리 해줍니다.

이 경우 ')' 이 첫번째 문자로 오는 것이므로 뒤에 어떤 괄호가 오든 올바른 괄호가 아니게됩니다.

from collections import deque

def solution(s):    
    stk = deque()
    
    for c in s:
        if c == '(':
            stk.append(c)
            
        if c == ')':
            try:
                stk.pop()
            except Exception:
                return False
                
    return len(stk) == 0