BOJ(백준) 9012번 괄호 파이썬

2021. 3. 19. 13:19개인 공부 공간/Algorithm

 

9012번: 괄호

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

www.acmicpc.net


코드

import sys
r = sys.stdin.readline
T = int(r())
for _ in range(T):
    l = list(r().rstrip())
    s = 0
    for i in l:
        if i == '(':
            s += 1
        elif i == ')':
            s -= 1
            if s < 0:
                break

    if s == 0:
        print('YES')
    else:
        print('NO')

 

 

해설

이번 문제에서 사용한 flag(꼭 변수명이 flag일필요는 없다)는 어떠한 것을 기억해야 한다는 것을 신호로 남기기 ( flag를 설정한 후 마지막 출력 과정에서 그 flag의 값인지 아닌지 확인하기)위해 사용하였다. 위의 문제에서는 리스트 s 가 비어있을시 ) 값이 들어오면 이미 그 인풋 값은 괄호 문자열의 조건을 충족시킬 수 없기 때문에 break 을 해줘야 하고 조건을 충족시킬 수 없다는 점을 표시하기 위해 flag = 1 을 해주었다.

 

결과

괄호결과.PNG

출처: https://privatedevelopnote.tistory.com/81 [개인노트]