백준저지 10828번 스택 문제 풀이입니다.

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


배열을 넉넉하게 잡아서 메모리를 할당하고, 간단하게 구현할 수 있습니다.


 

#include <bits/stdc++.h>
using namespace std;
int arr[10001];
int size;
inline void push(int a) {
    arr[size++] = a;
}
inline int pop() {
    return size > 0 ? arr[--size] : -1;
}
inline int top() {
    return size > 0 ? arr[size-1] : -1;
}
inline int empty() {
    return size>0 ? 0 : 1;
}
inline int sz() {
    return size;
}
int main() {
    int n;
    cin >> n;
    while(n--) {
        string cmd;
        cin >> cmd;
        if (cmd == "push") {
            int tmp;
            cin >> tmp;
            push(tmp);
        } else if (cmd == "pop") {
            cout << pop() << '\n';
        } else if (cmd == "size") {
            cout << sz() << '\n';
        } else if (cmd == "empty") {
            cout << empty() << '\n';
        } else if (cmd == "top") {
            cout << top() << '\n';
        }
    }
    return 0;
}



+ Recent posts