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

Kim Yongbin·2023년 9월 4일
0

코딩테스트

목록 보기
33/162

Problem

Solution

내 풀이

from collections import deque

def solution(s):
    if len(s) % 2 == 1:
        return 0

    answer = 0
    dq = deque(s)
    dq_length = len(dq)

    for _ in range(dq_length):
        stack = []
        flag = True
        for c in dq:
            if c in ["(", "{", "["]:
                stack.append(c)

            else:
                if len(stack) == 0:
                    flag = False
                    break

                peek = stack.pop()
                if not (
                        peek == "(" and c == ")"
                        or peek == "{" and c == "}"
                        or peek == "[" and c == "]"
                ):
                    flag = False
                    break

        if flag:
            answer += 1
        dq.append(dq.popleft())
    return answer

조금은 무식하게 stack과 deque를 활용하여 문제를 풀었다.

deque는 기존 괄호 리스트를 회전 시킬 때 사용하였고, stack은 괄호 체크를 할 때 사용하였다.

Reference

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

profile
반박 시 여러분의 말이 맞습니다.

0개의 댓글