susinlee 님의 블로그

84. 괄호 회전하기 본문

코드카타/Python

84. 괄호 회전하기

susinlee 2025. 1. 7. 09:50

[문제]

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

 

프로그래머스

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

programmers.co.kr

 

[풀이]

1. stack 자료구조를 이용하여 괄호 검사를 진행한다

2. 괄호 검사가 끝났다면 deque 자료구조를 이용해서 왼쪽으로 회전시켜준다 

3. 문자열 길이만큼 반복한다

 

from collections import deque

def solution(s):
    answer = 0
    n = len(s)
    queue = deque(s)

    # 문자열 길이만큼 반복
    for _ in range(n):
    
    	# 괄호 검사
        stack = []
        flag = True
        for ch in queue:
            if ch in '[({':
                stack.append(ch)
            else:
                if not stack:
                    flag = False
                    break
                out = stack.pop()
                if ch==']' and out == '[':
                    pass
                elif ch==')' and out == '(':
                    pass
                elif ch=='}' and out == '{':
                    pass
                else:
                    flag = False
                    break
                    
        # 괄호 검사 결과            
        if not stack and flag:
            answer += 1
            
        # 왼쪽으로 회전
        queue.rotate(-1)

    return answer

'코드카타 > Python' 카테고리의 다른 글

86. H-Index  (0) 2025.01.11
85. 연속 부분 수열 합의 개수  (1) 2025.01.08
83. 귤고르기  (0) 2025.01.06
82. 멀리 뛰기  (1) 2025.01.05
신고 결과 받기  (0) 2025.01.02