본문 바로가기
PS/BOJ

[백준] 10828. 스택(c++)

by backend 개발자 지망생 2025. 1. 26.

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

스택 기본 문제였다. stl 스택은 항상 empty를 신경써줘야 한다.

 


#include <iostream>
#include <vector>
#include <cmath>
#include <algorithm>
#include <map>
#include <queue>
#include <string>
#include <cstring>
#include <deque>
#include <climits>
#include <set>
#include <stack>
using namespace std;

using ll = long long;

int main() {

	int n;

	cin >> n;

	stack<int> stk;

	while (n--) {
		string temp;

		cin >> temp;

		if (temp == "push") {
			int push_int;
			cin >> push_int;
			stk.push(push_int);
		}
		else if (temp == "pop") {
			if (stk.empty()) {
				cout << "-1\n";
				continue;
			}
			cout << stk.top() << '\n';
			stk.pop();
		}
		else if (temp == "size") {
			cout << stk.size() <<'\n';
		}
		else if (temp == "empty") {
			if (stk.empty()) {
				cout << "1\n";
			}
			else
				cout << "0\n";
		}
		else if (temp == "top") {
			if (stk.empty()) {
				cout << "-1\n";
				continue;
			}
			cout << stk.top() << '\n';
			
		}
	}

	return 0;
}

'PS > BOJ' 카테고리의 다른 글

[백준] 1874. 스택 수열(c++)  (0) 2025.01.26
[백준] 10773. 제로(c++)  (0) 2025.01.26
[백준] 1158. 요세푸스 문제(c++)  (0) 2025.01.26
[백준] 5397. 키로거(c++)  (0) 2025.01.26
[백준] 1406. 에디터(c++)  (0) 2025.01.26