https://school.programmers.co.kr/learn/courses/30/lessons/12909
def solution(s):
stack = []
answer = True
for i in s:
if i == "(":
stack.append(i)
else:
if stack == []: # 1. (보다 )가 먼저 나온 경우 False
answer = False
break
else:
stack.pop()
if stack != []: # 2. ( , )의 개수가 맞지 않은 경우 False
answer = False
return answer
Queue로도 해결할 수 있다.
[아래는 Queue로 접근한 풀이]
from collections import deque
def solution(s):
queue = deque()
for i in s:
if i == "(":
queue.append("(")
else:
if len(queue) != 0:
queue.pop()
else:
return False
if len(queue) != 0:
return False
else:
return True