프로그래머스 : 괄호 회전하기

2021. 10. 8. 23:36문제풀기/프로그래머스

https://programmers.co.kr/learn/courses/30/lessons/76502

 

코딩테스트 연습 - 괄호 회전하기

 

programmers.co.kr

자료구조 중 Stack을 이용하는 문제이다.

from collections import deque
def solution(s):
    answer = 0
    right = ["(","[","{"]
    left = [")","]","}"]
    for i in range(len(s)):
        stack = deque([])
        strs = deque(list(s[:]))
        result = True
        while strs:
            now = strs.popleft()
            
            if now in left:
                now_index = left.index(now)
                if len(stack) > 0:
                    check = stack.pop()
                    if check != right[now_index]:
                        result = False
                        break
                else:
                    result = False
                    break
            elif now in right:
                stack.append(now)
        
        if len(strs) != 0 or len(stack) != 0:
            result = False
        
        if result == True:
            answer += 1
            
        s = s[1:] + s[0]
                    
    return answer