Programmers

[프로그래머스 / 파이썬 풀이] 괄호 회전하기

Hoo_Dev 2023. 2. 17. 10:51
def solution(s):
    s = list(s)
    global answer
    answer = 0
    
    def check(brackets):
        dic = {
            '}' : '{',
            ']' : '[',
            ')' : '('
        }
        global answer
        lst = []
        for i in brackets:
            if len(lst) == 0:
                lst.append(i)
            else:
                if i in dic.keys():
                    if dic[i] == lst[-1]:
                        lst.pop()
                else:
                    lst.append(i)
        if not lst:
            answer += 1     
        return
        
    for i in range(len(s)):
        a = s.pop(0)
        s.append(a)
        check(s)

    return answer

괄호 배열을 한칸씩 회전하면서 모든 수를 비교한다.

빈 배열 안에 올바른 괄호를 쌓게 되는데 만약 모든 괄호가 올바른 괄호라면 배열이 비어있게 되므로 그런 경우에는 정답을 +1 해준다.