mo1lusca의 블로그
[백준] 9012 괄호 - C++ 본문
https://www.acmicpc.net/problem/9012
여는 괄호 '('를 stack에 push, 닫는 괄호 ')'를 stack에 pop하는 명령으로 생각한다.
stack이 empty일때 pop하거나 모든 명령을 실행한 후에도 stack이 empty가 아니라면
올바른 괄호 문자열(VPS)이 아니다.
#include <iostream>
#include <queue>
using namespace std;
int main() {
int n;
cin >> n;
for (int i = 0; i < n; i++) {
queue<int> q;
string s;
cin >> s;
int len = s.length();
bool is_vps = true;
for (int j = 0; j < len; j++) {
if (s[j] == '(') {
q.push(1);
}
else if (s[j] == ')') {
if (!q.empty()) {
q.pop();
}
else {
is_vps = false;
}
}
}
if (q.empty() && is_vps) {
cout << "YES\n";
}
else {
cout << "NO\n";
}
}
return 0;
}
이제 보니 queue로 구현했는데, 어차피 특정한 값을 push, pop 하는게 아니라서
별 차이는 없을 것 같다.
'PS' 카테고리의 다른 글
| [백준] 1966 프린터 큐 - C++ (0) | 2025.06.01 |
|---|---|
| [백준] 3986 좋은 단어 - C++ (0) | 2025.06.01 |
| [백준] 1181 단어 정렬 - Rust (0) | 2025.05.27 |
| [백준] 1697 숨바꼭질 - C (0) | 2025.05.18 |
| [백준] 2178 미로 탐색 - C (0) | 2025.05.18 |