https://www.acmicpc.net/problem/10828
스택 기본 문제였다. stl 스택은 항상 empty를 신경써줘야 한다.
#include <iostream>
#include <vector>
#include <cmath>
#include <algorithm>
#include <map>
#include <queue>
#include <string>
#include <cstring>
#include <deque>
#include <climits>
#include <set>
#include <stack>
using namespace std;
using ll = long long;
int main() {
int n;
cin >> n;
stack<int> stk;
while (n--) {
string temp;
cin >> temp;
if (temp == "push") {
int push_int;
cin >> push_int;
stk.push(push_int);
}
else if (temp == "pop") {
if (stk.empty()) {
cout << "-1\n";
continue;
}
cout << stk.top() << '\n';
stk.pop();
}
else if (temp == "size") {
cout << stk.size() <<'\n';
}
else if (temp == "empty") {
if (stk.empty()) {
cout << "1\n";
}
else
cout << "0\n";
}
else if (temp == "top") {
if (stk.empty()) {
cout << "-1\n";
continue;
}
cout << stk.top() << '\n';
}
}
return 0;
}
'PS > BOJ' 카테고리의 다른 글
[백준] 1874. 스택 수열(c++) (0) | 2025.01.26 |
---|---|
[백준] 10773. 제로(c++) (0) | 2025.01.26 |
[백준] 1158. 요세푸스 문제(c++) (0) | 2025.01.26 |
[백준] 5397. 키로거(c++) (0) | 2025.01.26 |
[백준] 1406. 에디터(c++) (0) | 2025.01.26 |