
c++의 STL을 사용해서 풀었다.
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <iostream>
#include <stack>
#include <cstring>
using namespace std;
bool VPS() {
int i;
char x[51];
int flag = 0;
stack<char> s;
scanf("%s", x);
for (i = 0; i < strlen(x); i++) {
if (x[i] == '(') {
s.push(x[i]);
}
else if (!s.empty()) {
s.pop();
}
else {
flag = 1;
break;
}
}
if (s.empty() && flag == 0) {
return true;
}
else return false;
}
int main() {
int N;
int i;
scanf("%d", &N);
for (i = 0; i < N; i++) {
if (VPS()) {
printf("YES\n");
}
else {
printf("NO\n");
}
}
return 0;
}


c++의 STL을 사용해서 풀었다.
#define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <iostream> #include <stack> #include <cstring> using namespace std; bool VPS() { int i; char x[51]; int flag = 0; stack<char> s; scanf("%s", x); for (i = 0; i < strlen(x); i++) { if (x[i] == '(') { s.push(x[i]); } else if (!s.empty()) { s.pop(); } else { flag = 1; break; } } if (s.empty() && flag == 0) { return true; } else return false; } int main() { int N; int i; scanf("%d", &N); for (i = 0; i < N; i++) { if (VPS()) { printf("YES\n"); } else { printf("NO\n"); } } return 0; }
