hello, world!

[baekJoon10866] 덱 본문

BAEKJOON/data structures

[baekJoon10866] 덱

ferozsun 2020. 8. 12. 10:00

https://www.acmicpc.net/problem/10866

 

10866번: 덱

첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지 ��

www.acmicpc.net


/*
날짜: 2020.08.12
번호: 10866
문제: deque
*/
#include <iostream>
#include <deque>
#include <cstring> // strcmp()
using namespace std;
int main() {
	deque<int> dq;
	int N;	cin >> N;

	while (N--) {
		char order[100];	cin >> order;
		if (!strcmp(order, "push_front")) {
			int X;	cin >> X;
			dq.push_front(X);
		}
		else if (!strcmp(order, "push_back")) {
			int X;	cin >> X;
			dq.push_back(X);
		}
		else if (!strcmp(order, "pop_front")) {
			if (dq.size() > 0) {
				cout << dq.front() << "\n";
				dq.pop_front();
			}
			else {
				cout << "-1\n";
			}
		}
		else if (!strcmp(order, "pop_back")) {
			if (dq.size() > 0) {
				cout << dq.back() << "\n";
				dq.pop_back();
			}
			else {
				cout << "-1\n";
			}
		}
		else if (!strcmp(order, "size")) {
			cout << dq.size() << "\n";
		}
		else if (!strcmp(order, "empty")) {
			cout << dq.empty() << "\n";
		}
		else if (!strcmp(order, "front")) {
			if (dq.size() > 0) {
				cout << dq.front() << "\n";
			}
			else {
				cout << "-1\n";
			}
		}
		else if (!strcmp(order, "back")) {
			if (dq.size() > 0) {
				cout << dq.back() << "\n";
			}
			else {
				cout << "-1\n";
			}
		}
	}
}

Comments