본문 바로가기
코딩테스트/백준

[C++/스택] BOJ 10828 스택

by Ssubini 2021. 6. 11.

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 main()
{
    int n, input;
    stack<int> nums;
    cin >> n;
    string comm;

    while(n--){
        cin >> comm;

        if(comm == "push"){
            cin >> input;
            nums.push(input);
        }else if(comm == "pop"){
            if(nums.size() != 0){
                cout << nums.top() << '\n';
                nums.pop();
            }else{
                cout << "-1" << '\n';
            }
        }else if(comm == "size"){
            cout << nums.size() << '\n';
        }else if(comm == "empty"){
            if(nums.size() == 0) cout <<'1'<<'\n';
            else cout << '0'<< '\n';
        }else if(comm == "top"){
            if(nums.size() != 0){
                cout << nums.top() << '\n';
            }else cout << "-1" << '\n';
        }
    }
}

 

'코딩테스트 > 백준' 카테고리의 다른 글

[C++/덱] BOJ 5430 AC  (0) 2021.06.22
[C++/큐] BOJ 2164 카드2  (0) 2021.06.15
[C++/큐] BOJ 10845 큐  (0) 2021.06.15
[C++/스택] BOJ 10773 제로  (0) 2021.06.11
[C++/연결리스트] BOJ 5397 키로거  (0) 2021.06.10

댓글