728x90

백준 9012 괄호

# 9012 괄호

N = int(input())
for i in range(N):
    R = list(input())
    if R[0] == ')' or R[-1] == '(':
        print('NO')
    else:
        num = 0
        for j in R:
            if j == '(' and num >= 0:
                num += 1
            else:
                num -= 1
        if num == 0:
            print('YES')
        else:
            print('NO')

먼저 입력으로 받아오는 괄호의 맨 앞과 맨 뒤가 틀리면 바로 'NO'를 반환해준다.

양끝 값이 정상으로 되어있다면 그 안의 괄호 순서의 값을 구해서 답을 출력한다.

num이라는 변수에 0을 할당해 생성해주고

'(' 괄호는 먼저 나와야 하는 괄호이므로 num이 0 이상일 때만 카운트한다.

'(' 괄호가 나오기 전에 ')' 괄호가 나왔다면

num이 마이너스 숫자가 되어서 'NO'를 출력하게 된다.

728x90

'Algorithm' 카테고리의 다른 글

백준 10816 파이썬  (0) 2022.02.22
백준 10773 파이썬  (0) 2022.02.15
백준 1904 파이썬  (0) 2022.02.15
백준 10989 파이썬  (0) 2022.02.09
백준 11866 파이썬 (큐)  (0) 2022.02.08

+ Recent posts