정수를 저장하는 스택을 구현한 다음, 입력으로 주어지는 명령을 처리하는 프로그램을 작성하시오.
구현
자료 구조
스택
스택의 처리 과정을 담은 문제다. 명령을 처리하는 과정과 스택만 제대로 구현한다면 어렵지 않다.
C++의 STL을 이용하면 굉장히 쉽게 풀 수 있다.
#include <stdio.h>
#include <iostream>
#include <algorithm>
#include <stack>
using namespace std;
int main()
{
stack<int> s;
int t;
string in1;
int in2;
cin >> t;
while (t--) {
cin >> in1;
if (in1 == "push") {
cin >> in2;
s.push(in2);
}
else if (in1 == "pop") {
if (s.empty()) cout << -1 << endl;
else {
cout << s.top() << endl;
s.pop();
}
}
else if (in1 == "size")
cout << s.size() << endl;
else if (in1 == "empty")
cout << s.empty() << endl;
else if (in1 == "top") {
if (s.empty())
cout << -1 << endl;
else
cout << s.top() << endl;
}
}
return 0;
}