본문 바로가기

공부/백준\BeakJoon

[BEAKJOON] 백준 9012번 : 괄호

반응형

문제 링크 :  https://www.acmicpc.net/problem/9012

 

9012번: 괄호

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

www.acmicpc.net

 

문제 설명

 

프로세스 설명

1. '(' 가 들어올 경우 stack에 아무 값이나 넣어준다.

2-1. ')' 가 들어온 경우에는 stack이 빈값값이라면, pop을 해준다.

2-2. 만약에 stack의 값이 빈값이라면 break로, NO를 출력하는 프로세스로 진행해준다.

3. 최종적으로 stack의 길이가 없고, flag가 true라면 VPS가 맞기에 "YES"를 출력해준다.

 


최종 코드

import sys
input = sys.stdin.readline

N = int(input())

def isVPS(m_parenthesis):
    stack_list = list()
    flag = True
    for i in range(len(m_parenthesis)-1):
        if(m_parenthesis[i]=='('):
            stack_list.append('(')
        else:
            if(len(stack_list) != 0):
                stack_list.pop()
            else:
                flag = False
                break
    if((len(stack_list) == 0) & flag):
        print("YES")
    else:
        print("NO")


while(N):
    N -= 1
    parenthesis = input()
    isVPS(parenthesis)
반응형