ex)
"(())()" -> VPS(O),
"(()" -> VPS(X) - 괄호의 짝이 맞지 않음.
문제는 VPS가 맞다면 "YES", 아니라면 "NO"를 출력해주면 된다.
N = int(input())
for i in range(N):
vps = input()
vps_list = list(vps)
sum = 0
for i in vps_list:
if i == '(': #여는 괄호는 + 1
sum += 1
elif i == ')': #닫는 괄호는 - 1
sum -= 1
if sum < 0:
print('NO') #sum이 0보다 작아진다는 뜻은 닫는 괄호의 개수가 더 많다는 뜻
break
if sum > 0:
print('NO') #sum이 0보다 크다는 뜻은 여는 괄호의 개수가 더 많다는 뜻
elif sum == 0:
print('YES')
인풋값의 VPS 문자열을 vps_list라는 변수에 담아주고
i 값이 "(" 여는 괄호라면 sum 변수 값에 + 1, ")" 닫는 괄호라면 sum 변수 값에 - 1을 해준다. sum의 값이 0이면 괄호의 짝이 맞다는 뜻.
그러므로 sum이 0보다 작다면 닫는 괄호의 개수가 더 많다는 뜻이니 "NO"를 출력하고 sum이 0보다 크다면 여는 괄호의 개수가 더 많다는 뜻이니 "YES"를 출력하면 문제를 풀 수 있다.