[BOJ] 9012 괄호

[BOJ] 9012 괄호

문제 링크

이 문제는 올바른 괄호 문자열 쌍이 이뤄지는지를 판단하는 프로그램을 작성해야한다.

문자를 입력받을 때, 괄호 왼쪽 ‘(‘ 을 입력받을 때 Stack에 저장(append)하고 그렇지 않은 경우에 Stack의 pop을 실행함으로써 괄호 한 쌍이 이뤄지는지 아닌지를 판단할 수 있다.

pop을 실행하려고 하는데 ‘(‘가 남아있지 않다면 올바른 괄호 문자열 쌍을 이룰 수 없다.

‘한 쌍’을 판단할 때에 이러한 방식이 있다는 점을 기억해두면 유형 파악에 도움이 될 것 같다.

T = int(input())
result = []

for _ in range(T):
    stack = []
    isVPS = True
    for char in input():
        if char == '(':
            stack.append(char)
        else:
            if len(stack) > 0:
                stack.pop()
            else:
                isVPS = False
                break

    if len(stack) > 0:
        isVPS = False

    result.append(isVPS)

for i in result:
    if i == True:
        print("YES")
    else :
        print("NO")

© 2021. All rights reserved.