문제

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

풀이

프로그래머스에서도 비슷한걸 풀었던 기억이 난다.
그때는 정수 값 +,- 로 구현 했던거 같은데…
이번에는 스택을 이용해보았다.

lines = int(input())
commands = []
for _ in range(lines):
    commands.append(input())

for command in commands:
    stack = []
    for c in command:
        # 스택에 비어있다면 일단 삽입
        if len(stack) == 0: stack.append(c)
        # 스택 가장 상단이 '(', 입력 받은게 ')'라면 스택에서 '(' 제거
        elif stack[-1] == '(' and c == ')':
            stack.pop()
        # 그 외엔 일단 삽입
        else: stack.append(c)

    # 스택에 남은게 없다면 VFS
    if stack: print("NO")
    else: print("YES")

댓글남기기