[21322][伯俊/BOJ]10828号スタック
2379 ワード
質問する
にゅうしゅつりょく
に答える
STL stackと直接push,pop,top,size,emptyの2つの方法を用いて問題を解決した.
コード#コード#
#include <bits/stdc++.h>
using namespace std;
int main(void)
{
int n;
cin >> n;
stack<int> s;
while (n--)
{
string str;
cin >> str;
if (str == "push")
{
int num;
cin >> num;
s.push(num);
}
else if (str == "pop")
{
if (s.empty())
cout << -1 << '\n';
else
{
cout << s.top() << '\n';
s.pop();
}
}
else if (str == "size")
{
cout << s.size() << '\n';
}
else if (str == "empty")
{
if (s.empty())
cout << 1 << '\n';
else
cout << 0 << '\n';
}
else if (str == "top")
{
if (s.empty())
cout << -1 << '\n';
else
cout << s.top() << '\n';
}
}
}
#include <bits/stdc++.h>
using namespace std;
const int MX = 1000005;
int dat[MX];
int pos = 0;
void push(int x)
{
dat[pos++] = x;
}
void pop()
{
if (pos == 0)
cout << -1 << '\n';
else
{
cout << dat[pos - 1] << '\n';
pos--;
}
}
void size()
{
cout << pos << '\n';
}
void empty()
{
if (pos == 0)
cout << 1 << '\n';
else
cout << 0 << '\n';
}
void top()
{
if (pos == 0)
cout << -1 << '\n';
else
cout << dat[pos - 1] << '\n';
}
int main(void)
{
int n;
cin >> n;
while (n--)
{
string str;
cin >> str;
if (str == "push")
{
int num;
cin >> num;
push(num);
}
else if (str == "pop")
pop();
else if (str == "size")
size();
else if (str == "empty")
empty();
else if (str == "top")
top();
}
}
Reference
この問題について([21322][伯俊/BOJ]10828号スタック), 我々は、より多くの情報をここで見つけました https://velog.io/@kwkim95/210319백준BOJ-10828번-스택テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol