본문 바로가기
백준

균형잡힌 세상 - 4949번

by 청원뿔세포 2022. 10. 26.

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

댓글