본문 바로가기

알고리즘

[알고리즘] 괄호 (백준 9012/파이썬)

[개념]스택

 

[문제]

 

 

[문제해결방법]

1. 값을 받았을 때 그 괄호를 리스트에 저장한다.

2. 그 리스트에 있는 괄호를 차례대로 확인하며 계산한다.

3. 만일 괄호가 제대로 되어 있지 않을경우 값이 -1이 나오게 하여 합한 값이 0보다 작게 만들고 NO로 출력하게 만든다.

 

[코드리뷰]

import sys 

n= int(sys.stdin.readline())

for i in range(n):
    ps = sys.stdin.readline()
    c=list(ps)
    #받은 괄호를 리스트에 저장합니다.
    sum =0
    for i in c:
        if i =="(":
          sum +=1
          #리스트 안에 열리는 가로가 있으면 더하고
        elif i ==")":
            sum -= 1
            #닫히는 가로이면 뺀다
        if sum<0:
            print('NO')
            break
        # print(sum)

    if sum > 0:
        print('NO')
    elif sum==0:
        print('YES')

 

[결과]