본문 바로가기
알고리즘/자료 구조

백준 10845번 : 큐

by Jason95 2020. 12. 17.

문제 링크 : www.acmicpc.net/problem/10845

내 풀이 (2020.12.17.) :

#include <iostream>
#include <deque>

using namespace std;

class Queue {
	deque<int> queue;

public:
	void push(int num) {
		this->queue.push_back(num);
	}

	void pop() {
		if (queue.size() == 0) {
			cout << "-1" << endl;
		}
		else {
			int num = queue.front();
			queue.pop_front();
			cout << num << endl;
		}
	}

	void size() {
		cout << this->queue.size() << endl;
	}

	void empty() {
		cout << queue.empty() << endl;
	}

	void front() {
		cout << (queue.size() == 0 ? -1 : queue.front()) << endl;
	}

	void back() {
		cout << (queue.size() == 0 ? -1 : queue.back()) << endl;
	}
};

int main() {
	Queue queue;
	int N;
	cin >> N;

	for (int i = 0; i < N; i++) {
		string command;
		cin >> command;

		if (command == "push") {
			int num; cin >> num;
			queue.push(num);
		}
		else if (command == "pop") {
			queue.pop();
		}
		else if (command == "size") {
			queue.size();
		}
		else if (command == "empty") {
			queue.empty();
		}
		else if (command == "front") {
			queue.front();
		}
		else if (command == "back") {
			queue.back();
		}
	}
}

쉽지만 잔버그가 많이 나는 문제