[BOJ] 10828.스택 (STL안쓰고구현하기)

Feb 7, 2019


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

STL을 사용해서 구현하는 것도 방법이지만 STL을 안쓰고 구현해보는 것도 좋은 것 같습니다.

삼성같은 경우 STL을 허용하지만 STL을 허용하지 않는 기업도 있기 때문에 한번 코딩해보는 것도 나쁘지 않은 것 같습니다.

#include <iostream>
#include <string>
using namespace std;

int d[1000] = {-1,};
int main()
{
    int cnt,input;
    int size = 0;
    string str;
    cin >> cnt;
    while (cnt) {
        cnt--;
        cin >> str;
        if (str == "push") {
            cin >> input;
            size++;
            d[size] = input;
        }
        else if (str == "pop") {
            if (size != 0) {
                printf("%d\n", d[size]);
                d[size] = -1;
                size--;
            }
            else printf("-1\n");
        }
        else if (str == "size") {
            printf("%d\n", size);
        }
        else if (str == "empty") {
            if (size == 0) printf("1\n");
            else printf("0\n");
        }
        else if (str == "top") {
            printf("%d\n", d[size]);
        }

    }
}