백준(Python) 풀이/자료 구조

백준(Python) 9012번 괄호 풀이

개발윗미 2022. 7. 6. 15:46

Python으로 구현한 9012번 괄호 문제 풀이입니다.

 

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

 

9012번: 괄호

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

www.acmicpc.net


t = int(input())
for _ in range(t) :
    data = list(input())
    open = 0

    for d in data :
        if d == '(' :
            open += 1
        else :
            open -= 1
            if open < 0 :
                print("NO")
                break
    else :
        if open > 0 :
            print("NO")
        else :
            print("YES")

 

1. 입력받은 문자열을 리스트 형태로 저장하고 데이터를 하나씩 꺼내 확인한다.

 

2. 만약 그 값(d)이 '(' 일 경우 open 값을 1 증가시킨다.

 

3. 만약 그 값(d)이 ')'일 경우 open 값을 1 감소시키고, open 값이 음수가 되면 "NO"를 출력한 후 break 한다.

 

4. 반복문이 break 되지 않았다면 open 값을 확인하여 그 값이 0보다 클 경우 올바른 괄호를 이룰 수 없으므로 "NO"를 출력한다.

   open 값이 0이라면 올바른 괄호를 만들 수 있으므로 "YES"를 출력한다.