# 본인 풀이
#include<bits/stdc++.h>
using namespace std;
int t;
string a;
int main(){
cin >> t;
for (int i = 0; i < t;i++){
stack<char> stk;
cin >> a;
for(char ch : a){
if (!stk.empty() && stk.top() != ch){
if(stk.top() == ')'){
break;
}
stk.pop();
}else{
stk.push(ch);
}
}
if(stk.empty()){
cout << "YES"
<< "\n";
}else {
cout << "NO"
<< "\n";
}
}
return 0;
}
- 반례가 있었음
())(()
- 단순히 다른 괄호가 top에 존재한다고 해서 스택 팝을 처리하면 안됨.