Algoritm/BOJ

[BOJ] 9012번:괄호

twoDeveloper 2021. 9. 1. 00:50
import sys
input = sys.stdin.readline

t = int(input())

def check(vps):
    stack = []
    while vps:
        v = vps.pop()
        if v == ')':
            stack.append(v)
        else:
            if not stack:
                return False
            else:
            	stack.pop()
    if stack:
        return False
    else:
    	return True

for _ in range(t):
    vps = list(input().rstrip())
    if check(vps):
        print('YES')
    else:
        print('NO')

■ 문제 풀이

· 스택 사용

· ')' 일 경우 stack에 값 append

· stack이 비어있을 경우 False 반환

· 비어있지 않을 경우 pop

· 애초에 stack이 비어있지 않을 경우 False 반환 / 비어있을 경우 True 반환

 

문제 출처 : https://www.acmicpc.net/problem/9012

 

9012번: 괄호

괄호 문자열(Parenthesis String, PS)은 두 개의 괄호 기호인 ‘(’ 와 ‘)’ 만으로 구성되어 있는 문자열이다. 그 중에서 괄호의 모양이 바르게 구성된 문자열을 올바른 괄호 문자열(Valid PS, VPS)이라고

www.acmicpc.net