人生で最初に解きたいスタックの問題
問題概要
以下の 3 種類のクエリ ( 個) を高速に処理するプログラムを実装せよ。
- クエリタイプ 1: という題名の本を机の一番上に積む
- クエリタイプ 2:一番上に積まれている本の題名を答えよ
- クエリタイプ 3:一番上に積まれている本を机から除去する
初期状態では、本は一冊も積まれていない。また、クエリタイプ 2, 3 が呼ばれるときには、本が一冊以上積まれていることが保証される。
制約
メモ
スタックを使う。詳細は鉄則本参照。
コード
#include <bits/stdc++.h> using namespace std; int main() { int Q, type; string S; cin >> Q; vector<string> stk; // スタック while (Q--) { cin >> type; if (type == 1) { cin >> S; stk.push_back(S); } else if (type == 2) { cout << stk.back() << endl; } else { stk.pop_back(); } } }