https://programmers.co.kr/learn/courses/30/lessons/76502#
from collections import deque
def solution(s):
answer = 0
s = deque(s)
for _ in range(len(s)):
if right(deque(s)):
answer += 1
s.rotate()
return answer
def right(s):
stack = []
openSet = set(["{", "(", "["])
closeSet = set(["}", ")", "]"])
while s:
curr = s.popleft()
if curr in openSet:
stack.append(curr)
else:
if not stack:
return False
prev = stack.pop()
if prev == "{":
if curr == "}":
pass
else:
return False
elif prev == "(":
if curr == ")":
pass
else:
return False
elif prev == "[":
if curr == "]":
pass
else:
return False
else:
return False
if stack:
return False
return True