백준 - 4949번: 균형잡힌 세상 - 파이썬

SEONGJIN LEE·2022년 2월 24일
0

code-test

목록 보기
7/18

백준 9012번: 균형잡힌 세상

문제

입출력 형식 및 출처

import sys


input_data = sys.stdin.readline

while True:
    temp_stack = []
    input_line = input_data().rstrip()
    # 이부분 주의. 마지막(7번)케이스때문에 strip()이 아닌 rstrip()써야함.
    if input_line == ".":
        break

    for char in input_line:
        if char=="(" or char=="[":
            temp_stack.append(char)
        elif char==")":
            if len(temp_stack)!=0 and temp_stack[-1] == "(":
                temp_stack.pop()
            else:
                temp_stack.append(char)
                break
        elif char=="]":
            if len(temp_stack)!=0 and temp_stack[-1] == "[":
                temp_stack.pop()
            else:
                temp_stack.append(char)
                break
                
    
    if len(temp_stack)==0:
        print("yes")
    else:
        print("no")

스택의 구조를 익히고 연습하기 좋은 문제

  • 괄호는 "(", ")" 쌍과 "[", "]"쌍이 존재한다
  • "("기호 혹은 "["가 나올 경우 해당기호를 스택에 넣어준다.
  • temp_stack의 담겨있는 괄호가 무엇인지 파악한 후, 같은 종류가 나올 경우 스택에서 제거해준다.

temp_stack에서 pop을 해주기 전, peak부분이 어떤종류인지 파악하는 부분을 구현하는게 중요

파이썬 입력 부분이 많이 약하다...😇

profile
조금 늦어도 꾸준하게

0개의 댓글