Lv2 프로그래머스(Programmers)[Python][파이썬] 괄호 회전하기

"""
출처:프로그래머스,
https://school.programmers.co.kr/learn/courses/30/lessons/76502
"""

# 풀이 과정
def solution(s):
from collections import deque
result = 0

count = 0

k = deque(list(s))

check = []

open_ = ["[", "(", "{"]

close_ = ["]", ")", "}"]

if len(s) == 1:
return 0

while count < len(s):

if k[-1] in open_ or k[0] in close_:
a = k.popleft()
k.append(a)
count += 1


else:
check = []
flag = False
for b in k:
if b in open_:
check.append(b)

elif b in close_:
if len(check) == 0:
flag = True
break

else:
c = close_.index(b)
d = open_.index(check[-1])

if c == d:
check.pop()

else:
break

if len(check) == 0:
if flag == False:
result += 1
a = k.popleft()
k.append(a)
count += 1

else:
a = k.popleft()
k.append(a)
count += 1

return result