Coding Test
[프로그래머스] 괄호 회전하기
상상쓰
2021. 6. 1. 11:19
https://programmers.co.kr/learn/courses/30/lessons/76502
코딩테스트 연습 - 괄호 회전하기
programmers.co.kr
deque 에 rotate 라는 함수가 있어서 s 의 길이 동안 위치를 바꿔가며 s 가 올바른 괄호 문자열인지 검사해준다.
stack 에는 여는 괄호를 넣어주고 닫는 괄호가 나왔을 때 stack 의 마지막 괄호랑 비교해서 짝이 맞는지 검사해주면 올바른 괄호 문자열인지 알 수 있다.
from collections import deque
def solution(s):
answer = 0
n = len(s)
s = deque(s)
dic = {')' : '(', '}' : '{', ']' : '['}
for i in range(n):
if i > 0:
s.rotate(-1)
stack = []
t = True
for j in s:
if j in ['(', '{', '[']:
stack.append(j)
else:
if len(stack) == 0:
t = False
break
else:
if stack.pop() != dic[j]:
t = False
break
if t and len(stack) == 0:
answer = answer + 1
return answer
print(solution('[](){}')) # 3