본문 바로가기
Programming/Algorithm

백준 디큐

by OKOK 2018. 1. 29.

/*

*/


#include <iostream>

#include <deque>

#include <string>


using namespace std;


int main() {

int N;

int num;

string str;

deque<int> deq;

cin >> N;

for (int i = 0; i < N; i++) {

cin >> str;

if (str == "push_back") {

cin >> num;

deq.push_back(num);

}

else if (str == "push_front") {

cin >> num;

deq.push_front(num);

}

else if (str == "front") {

if (!deq.empty()) {

cout << deq.front() << endl;

}

else {

cout << "-1" << endl;

}

}

else if (str == "back") {

if (!deq.empty()) {

cout << deq.back() << endl;

}

else {

cout << "-1" << endl;

}

}

else if (str == "size") {

cout << deq.size() << endl;

}

else if (str == "empty") {

if (deq.empty()) {

cout << "1" << endl;

}

else {

cout << "0" << endl;

}

}

else if (str == "pop_front") {

if (!deq.empty()) {

cout << deq.front() << endl;

deq.pop_front();

}

else {

cout << "-1" << endl;

}

}

else if (str == "pop_back") {

if (!deq.empty()) {

cout << deq.back() << endl;

deq.pop_back();

}

else {

cout << "-1" << endl;

}

}

}

return 0;


앞뒤로 넣었다 뺄 수 있는 자료 구조입니다. 팝 프론트 팝백도 있고 프론트 백도 있고 나머지는 사이즈 엠티 동일합니다.