문제 링크
LV 2: 괄호 회전하기
구현 방식
- stack을 이용하는 무난한 구현문제이다
- list 회전은 그냥 deque의 rotate 메소드를 사용했다 (반시계방향: .rotate(-1))
- 처음에 TC 13번에서 통과가 되지 않았는데, 마지막에 stack이 비어있는 지를 확인해줘야했다
코드
from collections import deque
def solution(s):
N = len(s)
answer = 0
for x in range(N):
stack = []; pos_flag = True
for i in range(N):
if s[i] == ']':
if stack:
if stack.pop() != '[': pos_flag = False; break
else: pos_flag = False; break
elif s[i] == '}':
if stack:
if stack.pop() != '{': pos_flag = False; break
else: pos_flag = False; break
elif s[i] == ')':
if stack:
if stack.pop() != '(': pos_flag = False; break
else: pos_flag = False; break
else:
stack.append(s[i])
s = deque(s); s.rotate(-1); s = list(s)
if pos_flag and not stack: answer += 1
return answer