백준 #9012

3376 단어 백준스택백준

알고리즘

스택을 이용하여 알고리즘을 구현했으며, "(" 가 입력되면 스택에 push해주고 ")" 가 입력되면 스택에서 pop해주었다. 그 결과, ")" 가 입력 되었을 때 스택이 비어있거나, 문자열이 끝났을 때 스택에 값이 남아있으면 NO, 스택이 비어있으면 YES이다.

python

n = int(input())

for i in range(n):
    stack = []
    flag = 1
    vps = input()
    for j in vps:
        if j == "(":
            stack.append(j)
        else:  # ")"이면서
            if not stack:  # 스택이 비어있으면
                flag = 0  # flag를 바꿔주고
                break  # 반복문을 종료한다
            stack.pop()  # 아니면, 스택의 가장 윗 값을 빼준다.
    if len(stack) != 0 or flag == 0:  # 스택에 값이 남아있거나, flag가 0이면 "NO"
        print("NO")
    else:  # 아니면 "YES"
        print("YES")

좋은 웹페이지 즐겨찾기