본문 바로가기

코딩테스트/Python

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

문제


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

 

코딩테스트 연습 - 괄호 회전하기

 

programmers.co.kr

 

 

 

풀이


from collections import deque

def solution(s):
    cnt=0
    for x in range(len(s)):
        s = deque(s)
        s.rotate(-1)
        ss = ''.join(s)
        while '[]' in ss or '{}' in ss or '()' in ss:
            ss = ss.replace('[]','').replace('{}','').replace('()','')
        if not ss : cnt+=1
    
    return cnt

 

replace를 사용해서 풀었다.

괄호 문제의 정석은 stack이지만.. 한번 머리를 굴려서 replace로 풀어봄

 

deque로 바꿔 rotate를 사용하여 하나씩 이동해준다.

deque를 다시 문자열로 바꿔준다.

 

[], (), {} 가 없을 때 까지 [], (), {} 를 공백으로 바꿔준다.

 

만약 문자열의 길이가 0일 경우, cnt를 더해준다.