[백준 문제풀이] 9012 - 제로

백준 문제풀이 9012번

풀이

checker라는 배열을 만들어놓고 값을 입력받는다. 입력받는 값을 하나하나 검사하며 만약 괄호 ‘(‘가 있을 경우 checker배열에 괄호를 추가하고, ‘)’가 있을 경우 checker배열에 값이 있는지 검사하고, 있을 경우 checker배열에 값을 뺀다. 만약 값이 없을 경우 괄호가 완성되지 않은 경우이기 때문에 NO를 출력한다. 이 때 break문으로 끊기지않고 비어있다면 YES를, 스택에 괄호가 남아있다면 NO를 출력한다.

코드

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
import sys

input = sys.stdin.readline

T = int(input())

for _ in range(T):
    checker = []
    text = input()
    for txt in text:
        if txt == '(':
            checker.append(txt)
        elif txt == ')':
            if checker:
                checker.pop()
            else:
                print("NO")
                break
    else:
        if not checker:
            print("YES")
        else:
            print("NO")

댓글남기기