from collections import deque
def solution(s):
if len(s) % 2 == 1:
return 0
answer = 0
dq = deque(s)
dq_length = len(dq)
for _ in range(dq_length):
stack = []
flag = True
for c in dq:
if c in ["(", "{", "["]:
stack.append(c)
else:
if len(stack) == 0:
flag = False
break
peek = stack.pop()
if not (
peek == "(" and c == ")"
or peek == "{" and c == "}"
or peek == "[" and c == "]"
):
flag = False
break
if flag:
answer += 1
dq.append(dq.popleft())
return answer
조금은 무식하게 stack과 deque를 활용하여 문제를 풀었다.
deque는 기존 괄호 리스트를 회전 시킬 때 사용하였고, stack은 괄호 체크를 할 때 사용하였다.
https://school.programmers.co.kr/learn/courses/30/lessons/76502