deque를 이용하였다. (stack기능만 사용)
소괄호와 대괄호가 번갈아 들어왔을 때 pop하기 전에 가장 마지막으로 어떤 종류의 괄호가 들어왔었는지 확인이 필요하다.
for 문이 끝나고 stack 이 비어있어야 yes이다.
from collections import deque
while True:
inn = input()
if inn=='.':
break
stack = deque()
can_yes = True
for i in inn:
if i=='(':
stack.append(i)
elif i=='[':
stack.append(i)
elif i==')':
if stack and stack[-1]=='(':
stack.pop()
else:
can_yes = False
break
elif i==']':
if stack and stack[-1] == '[':
stack.pop()
else:
can_yes = False
break
if can_yes and not stack:
print('yes')
else:
print('no')
'백준' 카테고리의 다른 글
최대공약수와 최소공배수 - 2609번 (0) | 2022.10.30 |
---|---|
부녀회장이 될테야 - 2775번 (0) | 2022.10.26 |
덱 - 10866번 (0) | 2022.10.26 |
큐 - 10845번 (0) | 2022.10.26 |
프린터 큐 - 1966번 (0) | 2022.10.24 |
댓글