개발 연습장/백준 문제풀이

[파이썬, Python] 백준 9012: 괄호

LooanCheong 2023. 3. 7. 10:16
반응형

문제

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

 

9012번: 괄호

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

www.acmicpc.net

코드

import sys
input = sys.stdin.readline

n = int(input())

for _ in range(n):
    text = list(input())
    sum = 0
    for i in text:
        if i == '(':
            sum += 1
        elif i == ')':
            sum -= 1
        if sum < 0:
            print('NO')
            break
    if sum > 0:
        print('NO')
    elif sum == 0:
        print('YES')

설명

괄호의 완성 조건을 생각해서 따지면 되는 문제이다.
우선 '(' 일 경우 sum 함수에 1을 더해주고,
')'일 경우 sum 함수에서 1을 빼준다.

만약 이 과정에서 sum이 0 미만으로 내려가게 됐다면 괄호의 요건을 만족하지 못했으므로,
반복문을 종료하고 NO를 출력한다.

sum이 0미만으로 내려가지 않고 반복문이 종료되었을 때,
0이라면 YES를 출력,
그렇지 않다면 괄호가 완벽하지 않으므로 NO를 출력해 준다.

반응형