https://www.acmicpc.net/problem/10866
10828 스택, 10845 큐 문제 푸는 방식을 덱에 사용하면 된다.
#include <iostream>
#include <deque>
using namespace std;
int main()
{
int num;
cin >> num;
deque<int> deq;
for(int i = 0; i < num; i++)
{
string str;
cin >> str;
int temp;
if(str == "push_front"){
cin >> temp;
deq.push_front(temp);
}
else if(str == "push_back")
{
cin >> temp;
deq.push_back(temp);
}
else if(str == "pop_front")
{
if(deq.empty())
cout << -1 << endl;
else{
cout << deq.front() << endl;
deq.pop_front();
}
}
else if(str == "pop_back")
{
if(deq.empty())
cout << -1 << endl;
else{
cout << deq.back() << endl;
deq.pop_back();
}
}
else if(str == "size")
{
cout << deq.size() << endl;
}
else if(str == "empty")
{
cout << deq.empty() << endl;
}
else if(str == "front")
{
if(deq.empty())
cout << -1 << endl;
else{
cout << deq.front() << endl;
}
}
else if(str == "back")
{
if(deq.empty())
cout << -1 << endl;
else{
cout << deq.back() << endl;
}
}
}
}