[프로그래머스 | Python] 괄호 회전하기

게으른 완벽주의자·2023년 1월 30일
0

프로그래머스

목록 보기
21/83
post-custom-banner

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

문제에서 한 칸씩 움직이는걸 보고 바로 deque.rotate()가 떠올라서 사용했다
원래 '올바른 괄호'문제에서 stack을 사용하던 걸 가져왔는데, 괄호 종류가 3개라서 3개의 stack을 쓰려다가 잘 되지 않았다
하지만 결국 닫는 괄호가 들어오는 조건 & 이 전에 짝이 맞는 여는 괄호가 들어왔는지만 확인하면 되기 때문에 3개까지 필요 없었다

from collections import deque
def check(s):
    stack = []
    for i in s:
        if len(stack)==0:
            stack.append(i)
        else:
            if i==')' and stack[-1]=='(':
                stack.pop()
            elif i==']' and stack[-1]=='[':
                stack.pop()
            elif i=='}' and stack[-1]=='{':
                stack.pop()
            else:
                stack.append(i)

    if len(stack)==0:
        return True
    else:
        return False

def solution(s):
    answer = 0
    s = deque(s)
    n = len(s)
    while n:
        s.rotate(-1)
        tmp = ''.join(s)
        check(tmp)
        
        if check(tmp):
            answer+=1
        
        n-=1
    return answer
profile
데이터를 공부하고 있습니다
post-custom-banner

0개의 댓글