#include <iostream>
#include <stack>
using namespace std;
bool parenthesis(string str){
char c;
stack<int> stack;
bool check = true;
for(int j=0; j<str.length(); j++){
c = str[j];
if(c == '('){
stack.push(c);
} else {
if(stack.empty()){
return false;
} else {
stack.pop();
}
}
}
if(!stack.empty()){
return false;
}
return true;
}
int main(int argc, char **argv){
int n, cnt = 0;
string str;
scanf("%d",&n);
for(int i=0; i<n; i++){
cin >> str;
if(parenthesis(str)){
printf("YES\n");
} else {
printf("NO\n");
}
}
return 0;
}
오늘의 키포인트
- 스택 문제의 바이블
- str을 한 문자씩 쓰려면 str 입력을 받은 수 for문을 사용하여 char형 변수에 하나씩 저장하여 사용한다.