https://www.acmicpc.net/problem/6051
map을 이용해서 각 쿼리별 목록을 저장하고 불러온다.
#include <bits/stdc++.h>
using namespace std;
int n, k;
char order;
map<int, vector<int>> m;
vector<int> v;
int main() {
ios_base::sync_with_stdio(false);
cin.tie(NULL);
cout.tie(NULL);
cin >> n;
m[0] = v;
for (int i = 1; i <= n; i++) {
cin >> order;
if (order == 'a') {
cin >> k;
v.push_back(k);
} else if (order == 's') {
v.pop_back();
} else if (order == 't') {
cin >> k;
v = m[k - 1];
}
m[i] = v;
if (v.size() == 0)
cout << "-1\n";
else
cout << v.back() << "\n";
}
}
'백준 문제풀이' 카테고리의 다른 글
백준 22115번: 창영이와 커피 (0) | 2022.10.10 |
---|---|
백준 7682번: 틱택토 (0) | 2022.10.06 |
백준 19576번: 약수 (0) | 2022.10.06 |
백준 1389번: 케빈 베이컨의 6단계 법칙 (0) | 2022.08.09 |
백준 5464번: 주차장 (0) | 2022.08.06 |