[BOJ / Python] 4949 균형잡힌 세상

도니·2023년 4월 21일
0

BOJ / Python

목록 보기
104/104
post-thumbnail

문제

백준 4949 균형잡힌 세상

코드

import sys

while True:
    sentence = sys.stdin.readline().rstrip()
    if sentence == '.':
        break

    stack = []
    isBalanced = True
    for ch in sentence:
        if ch == '[' or ch == '(':
            stack.append(ch)
        elif ch == ']':
            if not stack or stack[-1] == '(':
                isBalanced = False
                break
            elif stack[-1] == '[':
                stack.pop()
        elif ch == ')':
            if not stack or stack[-1] == '[':
                isBalanced = False
                break
            elif stack[-1] == '(':
                stack.pop()
    if not stack and isBalanced:
        print('yes')
    elif stack or not isBalanced:
        print('no')

코드 설명
입력의 개수가 정해져있지 않고, 입력의 종료조건이 온점 하나(.)만 입력하는 경우이므로 조건식 sentence == '.'을 만족하는 경우 반복문을 빠져나올 수 있도록 한다.

sys.stdin.readline()를 사용하는 경우 개행 문자(\n)를 포함하여 입력을 받기 때문에 while 문 안의 sentence == '.' 조건식이 만족되지 않고 계속해서 입력을 받는 문제가 발생할 수 있다.
따라서 .rstrip()을 사용하여 개행문자를 제거해주어야 한다.

profile
안녕하세요, 🌱새싹개발자 도니💡입니다!

0개의 댓글

관련 채용 정보