본문 바로가기

코딩

[Python] 백준 #4949. 균형잡힌 세상

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

 

4949번: 균형잡힌 세상

각 문자열은 마지막 글자를 제외하고 영문 알파벳, 공백, 소괄호("( )"), 대괄호("[ ]")로 이루어져 있으며, 온점(".")으로 끝나고, 길이는 100글자보다 작거나 같다. 입력의 종료조건으로 맨 마지막에

www.acmicpc.net

 

# 4949 - Python 3

import sys
from collections import deque

input = sys.stdin.readline

while True:
    x = input().rstrip()
    s = deque()                             # '(', '['를 저장하는 deque
    cnt = 0

    if x[0] == ".":
        break
    
    for i in range(0, len(x)):
        if x[i] == '(':
            s.append(x[i])
        elif x[i] == '[':
            s.append(x[i])
        elif x[i] == ')':
            if not s or s[-1] == '[':       # 가장 최근에 s에 input된 것이 '['이면 안 됨
                cnt += 1
            else:
                s.pop()
        elif x[i] == ']':
            if not s or s[-1] == '(':       # 가장 최근에 s에 input된 것이 '('이면 안 됨
                cnt += 1
            else:
                s.pop()

    if not s and cnt == 0:
        print("yes")
    else:
        print("no")

'코딩' 카테고리의 다른 글

[Python] 백준 #1874. 스택 수열  (0) 2023.03.31
[Python] 백준 #7785. 회사에 있는 사람  (0) 2023.03.31
[Python] 백준 #9012. 괄호  (0) 2023.03.30
[Python] 백준 #24723. 녹색거탑  (0) 2023.03.30
[Python] 백준 #1010. 다리 놓기  (0) 2023.03.30