백준 알고리즘 기초 1/2, 200 - 자료구조1 괄호

HyeonKi Jo·2022년 10월 27일
0
post-thumbnail

문제

https://www.acmicpc.net/problem/9012

코드

def VPS_Check(PS):
    # 빈 스택 초기화
    stack = []

    # 각 글자를 하나씩 가져옴
    for ch in PS:
        # ch가 ')'이고, stack이 비어있지 않을 때, '('가 나올때까지 pop한다.
        if ch == ')':
            if stack:
                while stack:
                    if stack.pop() == '(':
                        break
            # stack이 비어있는데 ')'가 나온다면 'NO'반환
            else :
                return 'NO'
        # ch가 '('이거나 다른 문자라면 리스트에 append한다.
        else:
            stack.append(ch)

    # 모든 작업을 마쳤는데 아직 stack에 문자가 남아있다면 'NO' 아니면 'YES'를 반환한다.
    return 'NO' if stack else 'YES'


    # 만약 스택에 괄호가 남아있다면 (짝이 맞지 않았다면,)
    if stack:
        return 'NO'
    else:
        return 'YES'

# 반복 횟수 입력
num = int(input())
for i in range(num):
    # 괄호 문자열 입력
    PS = input().strip()

    # VPS검사 시작
    print(VPS_Check(PS))
profile
Talking Potato

0개의 댓글