[백준/C++] 10845번: 큐

꿈별·2024년 5월 14일
0

문제풀이

목록 보기
51/52

문제


풀이

#include <iostream>
#include <string>

using namespace std;

int arr[10000];
int first = -1, last = -1;

void push(int X) {
	if (9999 <= last) return;
	if (0 > first) first = 0;
	arr[++last] = X;
}

int pop() {
	if (0 > first) return -1;
	int tmp = arr[first];
	arr[first++] = 0;
	if (first > last) first = -1, last = -1;
	return tmp;
}

int size() { return 0 > first ? 0 : (last - first + 1); }
bool empty() { return 0 > first ? 1 : 0; }
int front() { return 0 > first ? -1 : arr[first]; }
int back() { return 0 > first ? -1 : arr[last]; }


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 ("front" == func) cout << front() << '\n';
		if ("back" == func) cout << back() << '\n';
	}
}

0개의 댓글