#include <stdio.h>
#include <stack>
#include <string.h>
using namespace std;
stack<char> st;
bool isOpen(char c){
if (c=='('||c=='{'||c=='[') return true;
return false;
}
bool isClose(char c){
if (c==')'||c=='}'||c==']') return true;
return false;
}
int main() {
int n;
char str[1005];
bool isLegal = true;
scanf("%d\n",&n);
for (int i=0;i<n;i++){
fgets(str,sizeof(str),stdin);
int len = strlen(str);
for (int index=0;index<len;index++){
char ch = str[index];
if (isOpen(ch)) st.push(ch);
if (isClose(ch)){
if (!st.empty() && isOpen(st.top())) st.pop();
else isLegal = false;
}
}
if (st.empty() && isLegal) printf("Y\n");
if (!st.empty() || !isLegal) printf("N\n");
isLegal = true;
}
return 0;
}
Wrond Answer이 왜 나오는 걸까요...