취준/프로그래머스
[프로그래머스 Programmers][Python] 올바른 괄호
puff
2020. 1. 22. 16:04
문제 : https://programmers.co.kr/learn/courses/30/lessons/12909
유명한 스택 문제다.
- 괄호 "(" 를 봤을 때, 스택에 "("를 넣는다. 왼쪽부터 읽기 때문에 () 순서는 정확하다.
- 괄호 ")" 를 봤을 때, 이제까지 본 "("를 한개 빼면 된다.
- 이 때, 스택에 "("가 없으면? -> () 짝이 안맞기 때문에 실패.
- 마지막까지 읽고 스택에 "(" 가 남아있다? -> "(" 짝이 안맞는
솔로경우가 있다는 뜻이라 실패, 스택이 비면 성공
def solution(s):
stack = []
for c in s:
if c =="(":
stack.append(c)
else: # ")"
if len(stack) == 0:
return False
else:
stack.pop()
return len(stack) ==0