https://www.acmicpc.net/problem/1874
#include <iostream>
#include <string>
#include <algorithm>
#include <vector>
#include <stack>
using namespace std;
int main() {
int t;
cin >> t;
int p = 0;
vector<char> v;
stack<int> q;
while (t--) {
int n;
cin >> n;
while (p < n) {
p += 1;
q.push(p);
v.push_back( '+' );
}
if (q.top() == n) {
q.pop();
v.push_back( '-' );
}
else {
cout << "NO";
return 0;
}
}
for (int i = 0; i < v.size(); i++) {
cout << v[i] << '\n';
}
return 0;
}
stack 헤더를 처음 사용해봤는데 말 그대로 스택이라 크게 어렵지는 않았다.
stack을 사용하기 전에는 직접 구현해보려고 했는데 top과 현재 pointer가
제대로 동작하지 않아서 stack으로 해결^^;;
저도 오늘 큐와 스택을 정리했는데^^