https://www.acmicpc.net/problem/9012
#Solution
'('와 ')'를 넣는 스택을 따로 만들어주는 문제이다. 최상단을 Pop해서 '('가 나오지 않으면 NO, 스택이 비지 않아도 NO 처리를 해준다.
case = int(input())
result = []
for i in range(case):
bracket = list(input())
bracket_stack = []
double_break = True
for j in range(len(bracket)):
if bracket[j] == "(":
bracket_stack.append(bracket[j])
else:
try:
if bracket_stack.pop() == "(":
pass
except:
result.append("NO")
double_break = False
break
if len(bracket_stack):
result.append("NO")
continue
if double_break:
result.append("YES")
for i in result:
print(i)
'Programming [Python] > 백준 알고리즘 솔루션' 카테고리의 다른 글
#81 백준 파이썬 [10989] 수 정렬하기 3 (0) | 2019.07.19 |
---|---|
#80 백준 파이썬 [11719] 그대로 출력하기 2 (0) | 2019.07.19 |
#78 백준 파이썬 [2252] 줄 세우기 - 위상정렬 (2) | 2019.07.19 |
#77 백준 파이썬 [2231] 분해합 (0) | 2019.07.16 |
#76 백준 알고리즘 [11047] 동전 0 (0) | 2019.07.16 |