<코드>
#include <iostream>
#include <string>
using namespace std;
int main() {
ios_base::sync_with_stdio(false);
cin.tie(nullptr);
cout.tie(nullptr);
//닫는거만 세주면 됩니다
//여는 괄호에서 닫는 거 개수만큼 차감해주고 마이너스가 된다면 VPS가 아니죠
int n;
cin >> n;
while (n--) {
string input;
cin >> input;
int vpsCount = 0;
bool minus = false;
for (int i = 0; i < input.size(); i++) {
if (input[i] == '(') {
vpsCount++;
}
else {
vpsCount--;
}
if (vpsCount < 0) {
cout << "NO" << "\n";
minus = true;
break;
}
}
if (minus == false) {
if (vpsCount != 0) {
cout << "NO" << "\n";
}
else {
cout << "YES" << "\n";
}
}
}
return 0;
}
주석에 써놓은대로 스택을 굳이 안쓰고
닫는 개수만 세주면 되겠죠
여는 괄호에서 닫는괄호를 차감해주고 음수가 된다면 닫는괄호가 더 많은거니
vps가 아니라고 볼 수 있습니다.
'[백준] > C++' 카테고리의 다른 글
백준 11687번 팩토리얼 0의 개수 [C++] (0) | 2023.07.08 |
---|---|
백준 13300번 방 배정 [C++] (0) | 2023.06.25 |
백준 10845번 큐 [C++] (0) | 2023.06.25 |
백준16396번 선 그리기 [C++] (0) | 2023.06.25 |
백준 1316번 그룹 단어 체커 [C++] (0) | 2023.06.25 |