#include <iostream>
#include <iomanip>
#include <vector>
using namespace std;
int main() {
int N, temp;
cin >> N;
string action;
vector<int> arr;
for(int i = 0; i < N; i++) {
cin >> action;
if(action == "push") {
cin >> temp;
arr.push_back(temp);
} else if(action == "top") {
arr.empty() ? cout << -1 << endl : cout << arr.back() << endl;
} else if(action == "size") {
cout << arr.size() << endl;
} else if(action == "empty") {
cout << arr.empty() << endl;
} else {
if(arr.empty()) cout << -1 << endl;
else {
cout << arr.back() << endl;
arr.pop_back();
}
}
}
}
dd
문제: https://www.acmicpc.net/problem/10828
10828번: 스택
첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지
www.acmicpc.net
'Problem Solving > 백준' 카테고리의 다른 글
[백준/C++] 1427번 소트인사이드 (0) | 2022.01.26 |
---|---|
[백준/C++] 11650번 좌표 정렬하기 (0) | 2022.01.24 |
[백준/C++] 8958번 OX퀴즈 (0) | 2022.01.24 |
[백준/C++] 5622번 다이얼 (0) | 2022.01.24 |
[백준/C++] 5598번 카이사르 암호 (0) | 2022.01.24 |