알고리즘/BOJ

[C++] 백준 10845번 큐

Jay, Lee 2021. 3. 26. 14:48

처음에 이 문제를 봤을때 진짜 queue만 써서 구하는 문제는 아니겠지...?라는 마음으로 접근했는데,

queue 자체의 기능을 써도 되는 것 같고, 구조체를 써도 되는 것 같았다.

하지만 구조체를 하직 배우지 않아서 queue를 사용하는 방향으로 문제를 풀었다.

 

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

int main() {

	ios::sync_with_stdio(false);
	
	int testCase;
	cin >> testCase;

	queue<int> q;

	for (int i = 0; i < testCase; i++) {
		string s;
		cin >> s;

		if (s == "push") {
			int n;
			cin >> n;
			q.push(n);
		}
		else if (s == "pop") {
			if (q.empty()) {
				cout << -1 <<"\n";
			}
			else {
				cout << q.front() << "\n";
				q.pop();
			}
		}
		else if (s == "size") {
			cout << q.size() << "\n";
		}
		else if (s == "empty") {
			cout << q.empty() << "\n";
		}
		else if (s == "front") {
			if (q.empty()) {
				cout << -1 << "\n";
			}
			else {
				cout << q.front() << "\n";
			}
		}
		else if (s == "back") {
			if (q.empty()) {
				cout << -1 << "\n";
			}
			else {
				cout << q.back() << "\n";
			}
		}
	}

	return 0;
}