본문 바로가기
Algorithm/프로그래머스

[프로그래머스] Lv2 - 올바른 괄호 (파이썬)

by _temp 2022. 5. 14.

https://programmers.co.kr/learn/courses/30/lessons/12909

 

코딩테스트 연습 - 올바른 괄호

괄호가 바르게 짝지어졌다는 것은 '(' 문자로 열렸으면 반드시 짝지어서 ')' 문자로 닫혀야 한다는 뜻입니다. 예를 들어 "()()" 또는 "(())()" 는 올바른 괄호입니다. ")()(" 또는 "(()(" 는 올바르지 않은

programmers.co.kr

 

def solution(s):
    stack = []
    for target in s:
        if target == ')' and stack and stack[-1] == '(':
            stack.pop()
        else:
            stack.append(target)
    return True if not stack else False

 

자료구조, 스택
1. 스택에 괄호를 하나씩 추가해나간다.
2. 단, 괄호가 ')'이고, 스택의 마지막 괄호가 '('이면 그대로 pop을 해준다.
3. 스택이 비어 있으면 True 아니면 False 반환

 

일단 짝을 지어서 빠져나가는 문제는 스택을 생각해야 한다.

괄호 관련 문제는 가장 1순위로 고려해볼 만하다.