[백준/C++] 10828번: 스택

꿈별·2024년 5월 13일
0

문제풀이

목록 보기
50/52

문제


풀이

  • 배열을 사용해서 구현했다.
#include <iostream>
#include <string>

using namespace std;

int arr[10000];
int idxTop = -1;

void push(int X) {
	if (9999 <= idxTop) return;
	arr[++idxTop] = X;
}

int pop() {
	if (0 > idxTop) return -1;
	int tmp;
	tmp = arr[idxTop];
	arr[idxTop--] = 0;
	return tmp;
}

int size() { return idxTop + 1; }
bool empty() { return 0 > idxTop ? 1 : 0; }
int top() { return 0 > idxTop ? -1 : arr[idxTop]; }


int main() {
	int N;
	string func;
	cin >> N;
	while (N--) {
		cin >> func;
		if ("push" == func) {
			int num;
			cin >> num;
			push(num);
		}
		if ("pop" == func) cout << pop() << '\n';
		if ("size" == func) cout << size() << '\n';
		if ("empty" == func) cout << empty() << '\n';
		if ("top" == func) cout << top() << '\n';
	}
}

0개의 댓글