
[문제 LINK]
https://www.acmicpc.net/problem/9012
한 쌍의 괄호 기호로 된 문자열인지 아닌지를 판단하는 문제이다.
주어진 입력값이 한 쌍의 괄호로 이루어져있는지 판단하기 위해서는 가장 안쪽에서 한쌍으로 존재하는 괄호부터 제거해나가면 바깥쪽도 한쌍으로 만날 수 있게된다.
이렇게 되면 한쌍으로 이루어진 괄호들은 다 제거되어 아무것도 남지 않게된다.
결국 다 제거되면 VPS이고 아니면 VPS가 아니다.
만약 입력값 ( ( ) ) ( ) )이 주어졌다면 왼쪽부터 하나씩 큐에 넣어가면서 한쌍을 이루게 된다면 제거하는 식으로 해결하였다.

길이가 7인 입력값의 큐와 입력값의 변화모습을 그림으로 나타낸 모습이다.
좌측에 위치한 네모도형이 큐의 상태 우측에 위치한 네모도형은 입력값이다.
( 가 큐에 쌓이고 우측 입력값은 하나가 줄어든 모습이다.( 가 큐에 쌓이고 우측 입력값은 하나가 줄어든 모습이다.마지막으로 남은 일곱번째 입력값 )만 큐에 남게 되므로 입력값은 다 없어지지않고 남아있기에 해당 입력값은 VPS가 아니다.
from collections import deque
n = int(input())
for i in range(n):
s = input()
q = deque()
for j in s:
if q and q[-1] == '(' and j == ')':
q.pop()
continue
q.append(j)
if q:
print('NO')
else:
print('YES')