DM Log

[월간 코드 챌린지 시즌2] 괄호 회전하기 - Python 본문

알고리즘/프로그래머스

[월간 코드 챌린지 시즌2] 괄호 회전하기 - Python

Dev. Dong 2025. 3. 11. 21:43

문제 링크 - https://school.programmers.co.kr/learn/courses/30/lessons/76502

 

프로그래머스

SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr

 

[문제 간단 요약]

1. 주어진 문자열을 회전 시켰을 때 정상 괄호의 문자열이 몇 개 인지 찾는 문제

[문제 해결 방안]

1. 문자열을 회전 시켜서 만들어지는 문자열을 확인

2. 회전 시켜 만들어진 문자열이 정상 괄호 문자열인지 확

 

[문제 해결 코드 - python]

from collections import deque
def check_str(word):
    q = deque(word)
    stack = []
    stack.append(q.popleft())
    while q:
        post_value = q.popleft()
        if len(stack) != 0:
            pre_value = stack.pop()
            if pre_value == '(' and post_value == ')':
                continue
            elif pre_value == '{' and post_value == '}':
                continue
            elif pre_value == '[' and post_value == ']':
                continue
            else:
                stack.append(pre_value)
                stack.append(post_value)
        else:
            stack.append(post_value)
    if len(stack) == 0:
        return 1
    else:
        return 0
def solution(s):    
    answer = 0
    for i in range(len(s)):
        s = s[1:]+s[0]
        answer += check_str(s)
    return answer