관리 메뉴

한다 공부

[C++] 백준 알고리즘 10866번 덱 본문

Algorithm/문제풀이

[C++] 백준 알고리즘 10866번 덱

사과당근 2021. 9. 15. 00:54

덱은 자료구조 정리 카테고리에 정리를 해뒀다.

[C] 큐 : 선형큐, 원형큐, 덱

 

c++ STL <deque> 함수를 정리하기 좋은 문제

 

10866

#include<iostream>
#include<deque>

using namespace std;

int main() {
	deque<int> d;
	string str;

	int n, num;
	cin >> n;
	while (n--) {
		cin >> str;
		if (str == "push_front") {
			cin >> num;
			d.push_front(num);
		}

		else if (str == "push_back") {
			cin >> num;
			d.push_back(num);
		}

		else if (str == "pop_front") {
			if (d.empty())
				cout << -1 << '\n';
			else {
				cout << d.front() << '\n';
				d.pop_front();
			}
		}

		else if (str == "pop_back") {
			if (d.empty())
				cout << -1 << '\n';
			else {
				cout << d.back() << '\n';
				d.pop_back();
			}
		}

		else if (str == "size")
			cout << d.size() << '\n';

		else if (str == "empty") {
			if (d.empty())
				cout << 1 << '\n';
			else
				cout << 0 << '\n';
		}

		else if (str == "front") {
			if (d.empty())
				cout << -1 << '\n';
			else {
				cout << d.front() << '\n';
			}
		}

		else if (str == "back") {
			if (d.empty())
				cout << -1 << '\n';
			else {
				cout << d.back() << '\n';
			}
		}
	}
}