Notice
Recent Posts
Link
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
Archives
관리 메뉴

이우의 개발일지

[C++] 백준 10828번 스택 본문

Coding

[C++] 백준 10828번 스택

공대이우 2024. 5. 10. 23:30

 

백준 10828번 스택

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

 

백준 코드 

#include <iostream>
#include <vector>
#include<string>
#include <stack>
using namespace std;
int main() {

    int N;
    cin >> N;
    string input;
    string push = "push", top = "top", pop = "pop", size = "size", empty = "empty";
    stack <int> v;
    for (int i = 0; i < N; i++) {
        cin >> input;
        if (input == push) {
            int t;
            cin >> t;
            v.push(t);
        }
        else if (input == top) {
            if (v.empty()) cout << -1 << endl;
            else cout << v.top() << endl;
        }
        else if (input == pop) {
            if (v.empty()) cout << -1 << endl;
            else {
                cout << v.top() << endl;
                v.pop();
            }
        }
        else if (input == size) {
            cout << v.size() << endl;
        }
        else if (input == empty) {
            if (v.empty()) cout << 1 << endl;
            else cout << 0 << endl;
        }
    }
    return 0;
}

 

사실 스택을 쓸 줄 알면 아주 간단한 문제다 ㅎㅎ

실제 입력되는 기능에 맞춰 구현만 해주면 되기 때문에 크게 어려움 없어보인다.

 

다만, push를 입력받을 때 push + 숫자를 입력 받아야해서, 입력받은 함수가 push일 때 int t, cin >> t로 설정을 해줘서 추가로 받을 수 있게 만든다는 점 주의하시면 될 것 같다.

반응형