https://programmers.co.kr/learn/courses/30/lessons/12909
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순위로 고려해볼 만하다.
'Algorithm > 프로그래머스' 카테고리의 다른 글
[프로그래머스] Lv2 - 땅따먹기 (파이썬) (0) | 2022.05.14 |
---|---|
[프로그래머스] Lv2 - 다음 큰 숫자 (파이썬) (0) | 2022.05.14 |
[프로그래머스] Lv2 - 가장 큰 정사각형 찾기 (파이썬) (0) | 2022.05.14 |
[프로그래머스] Lv2 - 방문 길이 (파이썬) (0) | 2022.05.13 |
[프로그래머스] Lv2 - 스킬트리 (파이썬) (0) | 2022.05.13 |