본문 바로가기
ALGORITHM/백준

[BOJ/PYTHON] 9012. 괄호

by 뭉망뭉 2023. 6. 1.

백준 문제 링크: https://www.acmicpc.net/problem/9012

문제 요약

입력으로 주어진 괄호 문자열이 VPS인지 판단 올바른 괄호 문자열(Valid PS, VPS)은 괄호 짝 잘 지어진 문자열

핵심 아이디어

전형적인 스택 문제다. 괄호 모양을 보고 스택에 넣어주거나 빼면 된다.

)가 왔을 때 스택에서 무조건 빼주는 게 아니라, 스택 맨 위가 ( 모양이면 빼주면 된다.

풀이

# silver4-9012. 괄호

import sys 
input = sys.stdin.readline

t = int(input()) 
for _ in range(t):
    stack = [] # 테스트 케이스마다 스택 초기화
    ps = input().rstrip() # 각 줄 입력
    for i in range(len(ps)):
        if ps[i] == "(":
            stack.append("(")        
        # )가 오고 스택 맨 위가 (일 때
        elif ps[i] == ")" and stack and stack[-1] == "(": 
                stack.pop()
        else:
            stack.append("-")
    # 정답 출력: 스택에 - or (가 남아있으면 올바른 괄호 문자열이 아님
    if stack: print("NO")
    else: print("YES")

실행 시간

메모리 31256KB, 시간 44ms (python3)

'ALGORITHM > 백준' 카테고리의 다른 글

[BOJ/PYTHON] 1158. 요세푸스 문제  (0) 2023.06.01
[BOJ/PYTHON] 1935. 후위 표기식2  (0) 2023.06.01
[BOJ/PYTHON] 1026. 보물  (1) 2023.05.25
[BOJ/PYTHON] 15889. 호 안에 수류탄이야!!  (0) 2023.05.25
[BOJ/PYTHON] 9009. 피보나치  (0) 2023.05.25

댓글