BOJ/Python

백준 9012번 괄호 파이썬

띵지니어 2022. 1. 16. 23:57
반응형

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

 

9012번: 괄호

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

www.acmicpc.net

for i in range(int(input())):
    result = 0
    for j in input():
        if j == '(':
            result += 1
        else:             # j = ')'일때
            result -= 1
            if result < 0:# 결과가 음수로 되는 순간 끝
                break
            
    if result == 0:
        print("YES")
    else:
        print("NO")

 

처음 코드를 짜다가, 사실 stack을 만들어 append, pop() 하는 알고리즘을 짜려 했는데,

오래오래 보다 보니 필요하지 않을 것 같아 논리적으로 count를 하여 코드를 짜보았다.

 


방법은 이러하다.

1. 처음에 ')' 가 나오면 무조건 NO

2. 처음에 '(' 가 나오면 result += 1을 해준다. 그 후 ')' 나오면 상쇄 시켜 result -= 1을 해준다.

3. 총 result = 0 이면 YES이고, result 가 음수가 될 시 바로 종료하여 NO를 출력한다.

반응형
목차(index)