[백준 4949] 균형잡힌 세상

Junyoung Park·2022년 3월 4일
0

코딩테스트

목록 보기
178/631
post-thumbnail

1. 문제 설명

균형잡힌 세상

2. 문제 분석

스택을 통해 최근에 들어간 괄호가 이번에 닫는 괄호의 종류와 매칭이 가능한지 체크하면서 균형이 깨졌는지 체크한다. 모든 문자열을 확인한 뒤 스택에 남아 있는 괄호가 없다면 균형 잡힌 문자열이다.

3. 나의 풀이

import sys
from collections import deque

while True:
    s = sys.stdin.readline().rstrip()
    if s == '.': break
    stack = deque()
    is_balanced = True
    for letter in s:
        if letter == '(':
            stack.append(letter)
        elif letter == '[':
            stack.append(letter)
        elif letter == ')':
            if not stack:
                is_balanced = False
                break
            elif stack[-1] == '(':
                stack.pop()
            else:
                is_balanced = False
                break
        elif letter == ']':
            if not stack:
                is_balanced = False
                break
            elif stack[-1] == '[':
                stack.pop()
            else:
                is_balanced = False
                break
    if not is_balanced: print('no')
    elif stack: print('no')
    else: print('yes')
profile
JUST DO IT

0개의 댓글