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

yunu·2022년 3월 2일
0
post-thumbnail

출처: 프로그래머스 코딩 테스트 연습, [프로그래머스] 괄호 회전하기

풀이

1. 문자열을 파이썬의 리스트 슬라이딩을 통해 수월하게 회전시킨다.
2. 스택을 만들고 만약 이번에 넣을 문자가 스택의 맨위의 문자와 ( ), [ ], { } 이런식으로 되어 있다면 pop한다. 여기서 한번이 아닌 while문을 통해 pop을 시켜야 되는 줄 알았지만 한번만 pop시키는 것이 맞았다.
3. 그 이외의 경우는 스택에 값을 넣는다.
4. 반복문이 모두 끝나고 나서 스택안에 값이 없다면 올바른 문자열이다.

코드

def solution(s):
    answer = 0
    for i in range(len(s)):
        rotate_s = s[i:] + s[:i]
        stack = []
        for c in rotate_s:
            if not stack: stack.append(c)
            elif stack[-1] + c == '()' or stack[-1] + c == '[]' or stack[-1] + c == '{}':
                stack.pop()
            else:
                stack.append(c)
        if stack:
            answer += 1

    return answer

느낀점

전에 풀어본 문제인데 다시 풀어보게 되었다. 저번에는 c++로 풀고 이번에는 파이썬으로 풀게 되어 휠씬 수월하게 풀 줄 알았으나 또 그렇지만도 않았다.

profile
rip

0개의 댓글