https://www.acmicpc.net/problem/9012
test_case = int(input())
for _ in range(test_case):
stack = []
a = input()
for i in a:
if i == '(':
stack.append(i)
elif i == ')':
if stack:
stack.pop()
else:
print("NO")
break
else:
if not stack:
print("YES")
else:
print("NO")
(을 입력 받으면 스택에 추가해주고 )를 입력받으면 스택에서 값을 뺍니다. 이때, 스택에 값이 없다면 No를 출력하고 break문을 통해 루프를 빠져나옵니다.
마지막에 스택에 값이 존재한다면 올바른 괄호가 아니므로 NO를 출력합니다.