본문 바로가기

Programming [Python]/백준 알고리즘 솔루션

#79 백준 파이썬 [9012] 괄호 - 스택

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)