알고리즘

백준 18258번 큐 2 C++

영춘권의달인 2022. 6. 6. 12:58

출처 : https://www.acmicpc.net/problem/18258

 

큐 자료구조를 이용하였다.

 

#include <iostream>
#include <string>
#include <vector>
#include <math.h>
#include <algorithm>
#include <utility>
#include <stack>
#include <queue>
#include <math.h>
#include <set>
#include <map>
#include <list>
#include <unordered_map>
#include <unordered_set>
#include <iomanip>
#include <limits.h>

using namespace std;
using ll = long long;

int main() {
	ios_base::sync_with_stdio(false);
	cin.tie(NULL);
	cout.tie(NULL);

	int n;
	cin >> n;
	int back;
	queue<int> q;
	while (n--) {
		string order;
		cin >> order;
		if (order == "push") {
			int x;
			cin >> x;
			q.push(x);
			back = x;
		}
		else if (order == "pop") {
			if (q.empty()) {
				cout << -1 << "\n";
				continue;
			}
			int front = q.front();
			q.pop();
			cout << front << "\n";
		}
		else if (order == "size") {
			cout << q.size() << "\n";
		}
		else if (order == "empty") {
			cout << q.empty() << "\n";
		}
		else if (order == "front") {
			if (q.empty()) {
				cout << -1 << "\n";
				continue;
			}
			cout << q.front() << "\n";
		}
		else if (order == "back") {
			if (q.empty()) {
				cout << -1 << "\n";
				continue;
			}
			cout << back << "\n";
		}
	}
};