본문 바로가기

코딩테스트

백준(4949) 균형잡힌 세상 PYTHON

 

https://www.acmicpc.net/problem/4949

 

while (True):
    word = input()
    if word == ".":
        break
    stack = []
    for i in word:
        if i == '(' or i == '[':
            stack.append(i)
        elif i ==')':
            if len(stack) != 0 and stack[-1] == '(':
                stack.pop()
            else:
                stack.append(i)
        elif i ==']':
            if len(stack) != 0 and stack[-1] == '[':
                stack.pop()
            else:
                stack.append(i)
    if len(stack) == 0:
        print("yes")
    else:
        print("no")

스택을 이용하여 언제 append와 pop을 할지 기준만 정해준다면 크게 어려움 없이 풀수있는 문제이다