n = int(input())
for i in range(n):
s = input()
stk = []
for ch in s:
if ch == "(":
stk.append(ch)
elif ch == ")":
if stk:
stk.pop()
elif not stk:
print("NO")
break
else:
if not stk:
print("YES")
else:
print("NO")
- 반복문 안에 break가 있을 때의 else 사용
step 1 ) break문이 작동 했을 때에는 else문이 실행되지 않는다. 해당 경우는 ), ())같이 닫는괄호가 더 많을 때를 걸러주기 위해서 작성한것이다. 이러한 경우를 break를 이용하면 실행시간에 있어 이득을 볼 수 있다.
step 2 ) 만약, break가 실행되지 않은 경우 즉 (,()( 같이 여는 괄호다 더 많을 때는 반복문이 모두 실행 된 후 stk 배열이 비지 않았을 경우를 조건으로 놓아 VPS의 참 유무를 판단한다.