알고리즘/백준[baekjoon]

[baekjoon] 9012번 : 괄호 by python

코딩하는이씨 2022. 3. 16. 22:54
728x90
반응형

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

 

9012번: 괄호

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

www.acmicpc.net

 

code

#괄호
import sys
input = sys.stdin.readline

t = int(input())
for i in range(t):
    a = input()
    a = a.strip('\n')

    xcount = 0
    ycount = 0

    for i in a:
        if i == '(':
            xcount += 1
        elif i == ')':
            ycount += 1
        if xcount < ycount:
            print("NO")
            break

    if xcount == ycount:
        print("YES")
    elif xcount > ycount:
        print("NO")

 

이번문제는 vps가 되는 기준을 하나하나 차근차근 조건을 통해 해결해 나가면된다.

 

입력받은 문자열을 하나씩 탐색하면서 (가 나오면 xcount를 1올리고

)가 나오면 ycount를 올렸다.

 

만약 진행중에 ycount가 더 높으면 아무리 (가 뒤에 나와도 vps가 될 수 없음으로 no출력후 for문을 탈출한다.

 

조건들을 다 거친뒤 xcount와 ycount가 같다면 (와 )의 짝이 알맞음으로 yes를 출력하면 된다.

 

 

이문제를 풀면서 처음엔 되게 여러 조건을 생각해 조금 긴 코드가 나왔지만, 

막상 중복되는 코드를 줄일 수 있었다.

728x90
반응형