Algorithm/백준 BOJ
[백준] [Python] #9012 괄호
은세라
2021. 9. 25. 03:47
https://www.acmicpc.net/problem/9012
9012번: 괄호
괄호 문자열(Parenthesis String, PS)은 두 개의 괄호 기호인 ‘(’ 와 ‘)’ 만으로 구성되어 있는 문자열이다. 그 중에서 괄호의 모양이 바르게 구성된 문자열을 올바른 괄호 문자열(Valid PS, VPS)이라고
www.acmicpc.net
중간에 풀다가 막혔는데 is_empty라는 flag를 넣음으로서 해결함
'('면 append하고 아니면 pop하는데, 마지막에 stack에 뭐가 남아있으면 NO만 하려 했더니
걸러지지 않는 케이스가 있었다
')' 같은 경우가 그러했다.
애초에 '('이 append된 적이 없어서 stack이 비어있거나, '('보다 ')'갯수가 더 많은 경우 그러했다.
따라서 비정상적인 사유로 인해 stack이 비어있는 채로 for문이 끝나는 경우를 위해 flag인 is_empty를 넣었다.
n = int(input())
for _ in range(n):
stack = []
is_empty = False
isVps = input()
for i in range(len(isVps)):
if isVps[i] == "(": stack.append(isVps[i])
else:
if not stack:
is_empty = True
break
else: stack.pop(-1)
if(len(stack)>0 or is_empty) : print("NO")
else: print("YES")