[伯俊/C+]10828号:スタック
7833 ワード
質問する
整数を格納するスタックを実装し、入力としてのコマンドを処理するプログラムを作成します.
命令は全部で5種類ある.
push X:整数Xをスタックに入れる演算.
pop:スタックの一番上の整数を除去し、出力します.スタックに整数がない場合は、-1が出力されます.
size:スタック内の整数の個数を出力します.
空:スタックが空の場合、1または0が出力されます.
top:スタックの一番上の整数を出力します.スタックに整数がない場合は、-1が出力されます.
質問の表示
入力
1行目に与えられるコマンド数N(1≦N≦10000).2行目からN行目までそれぞれ1つのコマンドがあります.与えられた整数は1以上であり、100000以下である.問題にない命令はない.
しゅつりょく
出力するコマンドが発行されるたびに、各行に1つのコマンドが出力されます.
例
アイデア
コード#コード#
#include <iostream>
#include <string>
#include <stack>
using namespace std;
int main() {
int N; // 반복 횟수
stack<int> stk;
cin >> N;
string cmd; // 명령어
while (N--) {
cin >> cmd;
if (cmd == "push") {
int val;
cin >> val;
stk.push(val);
}
else if (cmd == "pop") {
if (stk.size() == 0) {
cout << -1 << endl;
}
else {
cout << stk.top() << endl;
stk.pop();
}
}
else if (cmd == "size") {
cout << stk.size() << endl;
}
else if (cmd == "empty") {
if (stk.size() == 0)
cout << 1 << endl;
else
cout << 0 << endl;
}
else if (cmd == "top") {
if (stk.size() == 0) {
cout << -1 << endl;
}
else
cout << stk.top() << endl;
}
}
return 0;
}
試行錯誤
Reference
この問題について([伯俊/C+]10828号:スタック), 我々は、より多くの情報をここで見つけました https://velog.io/@dkswlgus00/백준C-10828번-스택テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol