[BOJ] 9012 괄호
이 문제는 올바른 괄호 문자열 쌍이 이뤄지는지를 판단하는 프로그램을 작성해야한다.
문자를 입력받을 때, 괄호 왼쪽 ‘(‘ 을 입력받을 때 Stack에 저장(append)하고 그렇지 않은 경우에 Stack의 pop을 실행함으로써 괄호 한 쌍이 이뤄지는지 아닌지를 판단할 수 있다.
pop을 실행하려고 하는데 ‘(‘가 남아있지 않다면 올바른 괄호 문자열 쌍을 이룰 수 없다.
‘한 쌍’을 판단할 때에 이러한 방식이 있다는 점을 기억해두면 유형 파악에 도움이 될 것 같다.
T = int(input())
result = []
for _ in range(T):
stack = []
isVPS = True
for char in input():
if char == '(':
stack.append(char)
else:
if len(stack) > 0:
stack.pop()
else:
isVPS = False
break
if len(stack) > 0:
isVPS = False
result.append(isVPS)
for i in result:
if i == True:
print("YES")
else :
print("NO")