동캄의 코딩도장

백준 4949 [균형잡힌 세상] 파이썬 본문

코테/BOJ

백준 4949 [균형잡힌 세상] 파이썬

동 캄 2022. 2. 12. 18:57

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

 

4949번: 균형잡힌 세상

하나 또는 여러줄에 걸쳐서 문자열이 주어진다. 각 문자열은 영문 알파벳, 공백, 소괄호("( )") 대괄호("[ ]")등으로 이루어져 있으며, 길이는 100글자보다 작거나 같다. 입력의 종료조건으로 맨 마

www.acmicpc.net

import sys
input = sys.stdin.readline
while True:
    line = input().rstrip()
    stack = []
    if len(line) == 1 and line[0] == '.':
        break
    else:
        check = 0
        for i in range(len(line)):
            if line[i] == '(' or line[i] == '[':
                stack.append(line[i])
            elif line[i] == ')':
                if stack:
                    comp = stack.pop()
                    if comp != '(':
                        check = 1
                        break
                else:
                    check = 1
                    break
            elif line[i] == ']':
                if stack:
                    comp = stack.pop()
                    if comp != '[':
                        check = 1
                        break
                else:
                    check = 1
                    break
        if check == 0 and not stack:
            print('yes')
        else:
            print('no')

간단한 스택 문제이다.