728x90


처음에는 ( 가 나온다면 +1을 해주고 ) 가 나온다면 -1 을 해주어서 마지막 총합이 0이 나오면 YES를 출력해주고

총합이 0이 아니라면 NO를 출력해주려고 했다.

하지만 ( ) ) ( ( ) 같은 경우 가운데 ' ) ( ' 때문에 합이 0이 나오지만 VPS 즉 괄호가 닫히지 않는다.

 

그래서 생각해본 방법은

입력값을 문자열로 받은 다음 ' ( ) ' 가 있다면 While 문과 replace를 사용하여 지속해서 ' ( ) ' 를 삭제해주고 마지막까지 문자열의 길이가 0 이 아니라면 N0, 0이라면 YES를 출력해 주는 것이다

 


n = int(input())

for i in range(n):
    data = input()
    answer = True
    while answer == True: #while문을 이용해 '()' 가 사라질때까지 반복
        if '()' in data:
            data = data.replace('()','') #replace를 이용해 '()'를 삭제
        elif len(data) == 0:
            print('YES')
            answer = False
        else:
            print('NO')
            answer = False

 

복사했습니다!