https://www.acmicpc.net/problem/9012
한 쌍의 괄호 기호로 된 ( ) 문자열 또는 이 문자열을 한 쌍의 괄호에 넣은 (()) 문자열들을 VPS라고 부를 때, 입력된 괄호 문자열이 VPS인지 판단하는 문제다.
(이 들어오면 open++
)이 들어오면 open--
)이 들어왔는데 open==0 이면NO
#include<iostream>
#include<string>
using namespace std;
int t;
string s;
int main() {
cin >> t;
while (t--) {
int flagStart=0;
int open=0, close = 0;
cin >> s;
for (int i = 0; i < s.size(); i++) {
if (s[i] == '(')open++;
else {
if (open == 0) {
flagStart = 0;
break;
}
else {
open--;
flagStart = 1;
}
}
}
if (flagStart == 0 || open != 0)cout << "NO\n";
else cout << "YES\n";
}
}