[Python] 백준 9012

eun·2024년 1월 18일

문제 9012

먼저 위 문제를 이해해보자.

  • 첫번째 줄에는 테스트 데이터 t가 주어진다.
  • 이후 줄부터는 t개의 테스트 데이터가 주어진다.
  • VPS의 여부에 따라 YES, NO를 출력하는 문제이다.
  • "("가 주어지면 스택에 넣고, ")"가 주어지면 pop 하면서 각 문자열의 마지막까지 진행했을 때 스택의 길이가 0이면 된다.
# 9012

import sys

t = int(sys.stdin.readline())

for i in range(t):
    stack = []
    con = 1
    test = sys.stdin.readline().rstrip()
    for j in test:
        if j == '(':
            stack.append(j)
        else:
            if len(stack) == 0:
                con = 0
                break
            else:
                stack.pop()
    
    if len(stack) == 0 and con == 1:
        print("YES")
    else:
        print("NO")

위 문제는 스택 개념을 활용하여 쉽게 풀 수 있었다.

0개의 댓글