https://www.acmicpc.net/problem/10828
10828번: 스택
첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지
www.acmicpc.net
#include <iostream>
#include <stack>
#include <string>
using namespace std;
int n;
stack<int> st;
int main(){
cin >> n;
for(int i=0; i<n; i++){
string s;
cin >> s;
if(s== "push"){
int num;
cin >> num;
st.push(num);
}else if(s=="pop"){
if(st.size()==0){
cout << "-1" << "\n";
}else{
cout << st.top() << "\n";
st.pop();
}
}else if(s=="size"){
cout << st.size() << "\n";
}else if(s=="empty"){
if(st.empty()){
cout << "1" << "\n";
}else{
cout << "0" << "\n";
}
}else if("top"){
if(st.size()==0){
cout << "-1" << "\n";
}else{
cout << st.top() << "\n";
}
}
}
return 0;
}
'코테' 카테고리의 다른 글
[queue]백준 10845번 - 큐 (0) | 2023.10.01 |
---|---|
[stack]백준 9012번 - 괄호 (1) | 2023.10.01 |
백준 3986번 - 좋은 단어 (1) | 2023.08.25 |
백준 1940번-주몽 (0) | 2023.08.25 |
백준 1213번 - 팰린드롬 만들기 (0) | 2023.08.24 |