#include <stdio.h>
#include <stack>
#include <iostream>
using namespace std;
stack<char> st;
bool isOpen(char ch){
if (ch=='('||ch=='{'||ch=='[') return true;
return false;
}
bool isClose(char ch){
if (ch==')'||ch=='}'||ch==']') return true;
return false;
}
int main() {
int n;
char ch;
string input;
cin>>n;
for (int i=0;i<n;i++){
cin>>input;
for (int j=0;j<input.length();j++){
ch=input[j];
if (isOpen(ch)) st.push(ch);
if (isClose(ch)){
if (st.empty()){
st.push(ch);
}
if(!st.empty() && isOpen(st.top())) st.pop();
if(!st.empty() && !isOpen(st.top())) st.push(ch);
}
}
if (st.empty()){
printf("Y\n");
} else {
printf("N\n");
}
while (!st.empty()) st.pop();
input.clear();
}
return 0;
}
오류가 나는 이유를 잘 모르겠습니다.