Week 01 ~ 04 : 알고리즘 문제 풀이

파이썬 백준 9012 괄호

정글러 2021. 11. 13. 19:40
n = int(input())
for j in range(n) :
    l = input()
    st = 0
    for i in range(len(l)) :
        if l[i] == '(' :
            st = st + 1
        elif l[i] == ')' :
            st = st - 1
            if st < 0 :
                print('NO')
                break
    if st == 0 :
        print('YES')
    elif st > 0 :
        print('NO')

괄호의 종류가 하나이기 때문에 리스트 형태의 스택을 만들지 않고 그냥 정수로 세도 된다.

마지막에 스택이 0이라면 정상적인 괄호열이고, 중간에 음수가 되거나 마지막에 0이 아니라면 틀린 괄호열이다.