https://www.acmicpc.net/problem/9012

 

9012번: 괄호

괄호 문자열(Parenthesis String, PS)은 두 개의 괄호 기호인 ‘(’ 와 ‘)’ 만으로 구성되어 있는 문자열이다. 그 중에서 괄호의 모양이 바르게 구성된 문자열을 올바른 괄호 문자열(Valid PS, VPS)이라고

www.acmicpc.net

 

스택을 이용한 괄호문제. 

스택의 종류가 하나라서 개수만 확인하면 돼서 꽤 쉽다.

 

( 일 경우, 스택에 추가하고, )의 경우에 스택에서 pop하는 형식으로 짜고,

0개일때 pop하는경우랑, 마지막 문자까지 읽었는데 스택에 남아있는 경우에는 NO를, 

마지막까지 읽었고 스택이 0인 경우엔 YES를 출력한다.

해답코드

T = int(input())

for _ in range(T):
    s = input()
    flag = 0 # 비정상종료시 1
    st = []
    for i in s:
        if i == "(":
            st.append("(")

        if i == ")":
            if len(st) == 0:
                print("NO")
                flag = 1
                break
            st.pop()

    if flag == 0:
        if len(st) != 0:
            print("NO")
            continue

        print("YES")