정구리의 우주정복

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

ALGORITHM/SOLVE

[BOJ] 백준 9012번 - 괄호 파이썬

Jungry_ 2020. 6. 28. 00:05
반응형

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

 

9012번: 괄호

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

www.acmicpc.net

 

 

testCase = int(input())

for _ in range(testCase):
    stack = []
    vps = input()
    check = 0
    for c in vps:
        if c =='(':
            stack.append(c)
        elif c ==')':
            if len(stack) ==0:
                print('NO')
                check = 1
                break
            else:
                stack.pop(-1)

    if len(stack) != 0 and check == 0:
        print('NO')
    elif len(stack) ==0 and check ==0:
        print('YES')
    

내가 만든 분기문은

1. '(' 일때 stack.append

2. ')' 일때

 2-1 . 만약 스택이 비었다면 (괄호가 성립하지 않게됨) -> NO 를 출력하고 check = 1 로 바꿔줌

 2-2. 스택이 비지 않았다면 (앞에 '(' 가 왔었음 따라서 괄호 성립) stack 에서 제일 마지막껄 pop 해준다

 

3. for 문을 다 돌고 났을때 stack 에 남은게 있다면 (이것은 스택의 길이와 check 가 0 인경우로 확인해줌)

 스택에 남은게 있다면 ->'NO'

 남은게 없으면 ->'YES'

반응형
Comments