백준 4949번 "균형잡힌 세상"

sanha_OvO·2021년 4월 23일
0

Algorithm

목록 보기
27/84

문제

백준 4949번 균형잡힌 세상


풀이

9012번과 비슷한 문제.
다만 소괄호와 대괄호의 순서를 고려해야 하는 문제이다.
따라서 반복중 가장 최근에 나왔던 괄호가 소괄호인지 대괄호인지를 검사하여 짝이 맞는지 확인하는 방식으로 코드를 짜면 된다.


Python 코드

import sys
inpout = sys.stdin.readline

while 1:
  s = input()

  if s == '.':
    break

  stack = []
  check = True
  for i in range(len(s)):
    if s[i] == '(' or s[i] == '[':
      stack.append(s[i])
    elif s[i] == ')':
      if not stack or stack[-1] == '[':
        check = False
        break
      elif stack[-1] == '(':
        stack.pop()
        continue
    elif s[i] == ']':
      if not stack or stack[-1] == '(':
        check = False
        break
      elif stack[-1] == '[':
        stack.pop()
        continue

  if not stack and check == True:
    print('yes')
  else:
    print('no')
profile
Web Developer / Composer

0개의 댓글