끄적끄적 코딩
article thumbnail
Published 2019. 9. 8. 01:30
[C++] 백준 10866번 덱 알고리즘
728x90

덱 문제입니다.

덱에 대한 함수를 만들어서
그에 대한 결과값을 출력해주면 됩니다.

 

#include <iostream>
#include <algorithm>
#include <deque>
#include <string>
using namespace std;

deque<int> d;

void push_front_(int x)
{
	d.push_front(x);
}

void push_back_(int x)
{
	d.push_back(x);
}

int pop_front_()
{
	if (d.empty()) {
		return -1;
	}
	else {
		int num = d.front();
		d.pop_front();
		return num;
	}
}

int pop_back_()
{
	if (d.empty()) {
		return -1;
	}
	else {
		int num = d.back();
		d.pop_back();
		return num;
	}
}

int size_()
{
	return d.size();
}

int empty_()
{
	if (d.empty()) {
		return 1;
	}
	else {
		return 0;
	}
}

int front_()
{
	if (d.empty()) {
		return -1;
	}
	else {
		return d.front();
	}
}

int back_()
{
	if (d.empty()) {
		return -1;
	}
	else {
		return d.back();
	}
}

int main(int argc, char *argv[]) 
{
	int n;
	int num;
	string s;

	cin >> n;

	while (n--){
		cin >> s;

		if (s == "push_front") {
			cin >> num;

			push_front_(num);
		}
		else if (s == "push_back") {
			cin >> num;

			push_back_(num);
		}
		else if (s == "pop_front") {
			cout << pop_front_() << endl;
		}
		else if (s == "pop_back") {
			cout << pop_back_() << endl;
		}
		else if (s == "size") {
			cout << size_() << endl;
		}
		else if (s == "empty") {
			cout << empty_() << endl;
		}
		else if (s == "front") {
			cout << front_() << endl;
		}
		else if (s == "back") {
			cout << back_() << endl;
		}
	}

	return 0;
}

'알고리즘' 카테고리의 다른 글

[C++] 백준 5430번 AC  (2) 2019.09.08
[C++] 백준 1021번 회전하는 큐  (0) 2019.09.08
[C++] 백준 1966번 프린터 큐  (0) 2019.09.08
[C++] 백준 11866번 조세퍼스 문제 0  (0) 2019.09.08
[C++] 백준 10845번 큐  (0) 2019.09.07

검색 태그