문제에서 한 칸씩 움직이는걸 보고 바로 deque.rotate()가 떠올라서 사용했다
원래 '올바른 괄호'문제에서 stack을 사용하던 걸 가져왔는데, 괄호 종류가 3개라서 3개의 stack을 쓰려다가 잘 되지 않았다
하지만 결국 닫는 괄호가 들어오는 조건 & 이 전에 짝이 맞는 여는 괄호가 들어왔는지만 확인하면 되기 때문에 3개까지 필요 없었다
from collections import deque
def check(s):
stack = []
for i in s:
if len(stack)==0:
stack.append(i)
else:
if i==')' and stack[-1]=='(':
stack.pop()
elif i==']' and stack[-1]=='[':
stack.pop()
elif i=='}' and stack[-1]=='{':
stack.pop()
else:
stack.append(i)
if len(stack)==0:
return True
else:
return False
def solution(s):
answer = 0
s = deque(s)
n = len(s)
while n:
s.rotate(-1)
tmp = ''.join(s)
check(tmp)
if check(tmp):
answer+=1
n-=1
return answer