문제

 

예제 입출력

 

코드

#include <iostream>
#include <stack>

using namespace std;

stack<int> myStack;

void solution(int n) {
    switch (n) {
    case 1:
        int num;
        scanf("%d", &num);
        myStack.push(num);
        break;
    case 2:
        if (!myStack.empty()) {
            printf("%d\n", myStack.top());
            myStack.pop();
        }
        else {
            printf("-1\n");
        }
        break;
    case 3:
        printf("%d\n", myStack.size());
        break;
    case 4:
        if (!myStack.empty()) {
            printf("0\n");
        }
        else {
            printf("1\n");
        }
        break;
    case 5:
        if (!myStack.empty()) {
            printf("%d\n", myStack.top());
        }
        else {
            printf("-1\n");
        }
        break;
    default:
        break;
    }
}

int main() {
    int N;
    int order;
    scanf("%d", &N);

    while (N--) {
        scanf("%d", &order);
        solution(order);
    }

    return 0;
}

 

스택을 이용한 기초적인 문제였다.

https://dongyeop00.tistory.com/105

 

C++ - Stack 기본 사용법

Stack이란?스택은 대표적인 LIFO 구조이다. 따라서 제일 마지막에 넣은 데이터가 처음으로 빠져나오는 것을 볼 수 있다.Stack의 사용stack STL을 사용하기 위해서는 #include 헤더파일을 포함해야한다.#in

dongyeop00.tistory.com

stl에서 제공해주는 헤더파일을 써서 간단하게 풀었다.