#include<bits/stdc++.h>
using namespace std;
int t;
string s;
stack<char> st;
int main(){
ios_base::sync_with_stdio(false);
cin.tie(NULL);
cout.tie(NULL);
cin >> t;
for(int i = 0; i <t; i++){
cin >> s;
for(char a : s){
if(st.size() != 0 && a == ')' && st.top() == '('){
st.pop();
}else st.push(a);
}
if(st.size() != 0){
cout << "NO" << '\n';
}else cout << "YES" << '\n';
while(st.size()){
st.pop();
}
}
}
'(' 와 ')'의 쌍을 맞추기 위해서는 stack을 사용하는 것이 가장 쉽다.
stack이 비어 있지 않고 입력 값이 ')'일 때 stack의 top 값이 '('이면 짝이 맞는 한 쌍이기에 삭제 시킨다.
그 외에는 그냥 stack에 넣는다.
결과론적으로 stack의 사이즈가 0이 아니면 "NO"
0이면 "YES"가 된다.
stack을 알고 있다면 어렵지 않게 해결할 수 있는 문제였다.