Dev 달팽이 @_''

[파이썬] 백준 9012번 : 괄호 본문

PS/Python

[파이썬] 백준 9012번 : 괄호

다본죽 2021. 2. 5. 00:15

출처 : www.acmicpc.net/problem/9012

 

9012번: 괄호

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

www.acmicpc.net

stack을 이용하여 '(' 이 나오면 stack에 넣고 ')'가 나오면 stack에서 빼는 방법을 생각했다.

만약, stack에 아무 것도 없는데 ')'이 나오면 무조건 'NO'이므로 그런 경우에는 따로 처리해주었다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
import sys
 
= int(sys.stdin.readline().strip())
 
for _ in range(N):
    s = sys.stdin.readline().strip('\n')
    j = 0
    stack = []
    idx = 0
    while(1):
        if idx >= len(s):
            if len(stack) != 0:
                j = 1
            break
        if s[idx] == '(':
            stack.append(idx)
            idx += 1
        else:
            if len(stack) == 0:
                j = 1
                break
            stack.pop()
            idx += 1
    if j == 1:
        print('NO')
    else:
        print('YES')
 
cs