[C++] 10845 : 큐

리폐·2023년 11월 2일

백준

목록 보기
9/18

10845 : 큐

#include <iostream>
#include <string>
using namespace std;

int main() {
	ios_base::sync_with_stdio(0);
	cin.tie(0);

	const int MX = 10005;
	int que[MX];
	int head = 0, tail = 0;

	int n;
	cin >> n;

	string st;
	for (int i = 0; i < n; i++) {
		int x;
		cin >> st;
		switch (st[0]) { //가장 앞에 문자로 판단
		case 'p':
			if (st[1] == 'u') { //push 일때 
				cin >> x;
				tail = (tail + 1) % MX;
				que[tail] = x;
			}
			else { //pop 일때
				if (head == tail) cout << -1 << "\n";
				else {
					head = (head + 1) % MX;
					cout << que[head] << "\n";
				}
			}
			break;
		case 's': 
			cout << ((tail - head + MX) % MX) <<"\n";
			break;
		case 'e': //공백상태 확인
			if (head == tail) cout << 1 << "\n";
			else cout << 0 << "\n";
			break;
		case 'f': 
			if (head == tail) cout << -1 << "\n";
			else cout << que[(head+1) % MX] << "\n";
			break;
		case 'b':
			if (head == tail) cout << -1 << "\n";
			else cout << que[tail] << "\n";
			break;
		}
	}
}

자료구조 큐가 어떻게 돌아가는지 알 수 있도록 생각하게 해준 문제라고 생각합니당

profile
Unreal 5, Unity 공부

0개의 댓글