본문 바로가기

Algorithm/자료구조

(C++) - 백준(BOJ) 10828번 : 스택(stack) 답

반응형

https://www.acmicpc.net/problem/10828

 

10828번: 스택

첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지

www.acmicpc.net

스택을 써보는 기초문제였습니다

 

 

Code

#include <bits/stdc++.h>
using namespace std;
int n;
stack <int> st;
int main(){
    cin >> n;
    while(n--){
        string op;
        cin >> op;
        if(op == "push"){
            int x;
            cin >> x;
            st.push(x);
        }
        else if(op == "pop"){
            if(st.size()) cout << st.top() << '\n', st.pop();
            else cout << -1 << '\n';
        }
        else if(op == "size") cout << st.size() << '\n';
        else if(op == "empty") cout << st.empty() << '\n';
        else if(op == "top"){
            if(st.size()) cout << st.top() << '\n';
            else cout << -1 << '\n';
        }
    }
}