"("와 ")"의 개수를 일일이 파악하지 않고 변수를 생성해서 +1, -1 해줄 수 있다.
NO의 경우
1. ( ) )일 때.
2. "("와 ")"의 개수가 맞지 않을 때
t = int(input())
for i in range(t):
command = list(input())
sum = 0
for j in range(len(command)):
if command[j] == "(":
sum += 1
else:
sum -= 1
if sum < 0: # ())일 때
print("NO")
break
if sum > 0: # 짝 개수가 맞지 않을 떄
print("NO")
elif sum == 0: # 짝 개수가 똑같을 때
print("YES")
두번 째 for문을 입력받은 괄호의 개수만큼 반복시킨다.
"(", ")"에 따라 +1, -1을 해준다.
"( ) ) ( ( )": 괄호의 짝의 개수가 똑같지만 완전한 괄호인 VPS가 아니다.
이걸 해결하기 위해서
"( ) )"일 때 sum보다 0이 더 커진다. 그때 "NO"출력 후 종료.