Written by JS970
on
on
10866 - 덱
- 난이도: 실버 4
- 날짜: 2023년 2월 6일
- 상태: Correct
- 추가 검토 여부: No
solution
- stl의 deque를 사용하여 문제의 조건에 따라 해결하면 된다.
code
#include <iostream>
#include <deque>
using namespace std;
int main()
{
ios::sync_with_stdio(false);
cin.tie(NULL);
int N;
cin >> N;
deque<int> deque;
string cmd;
int arg;
for(int i = 0; i < N; i++)
{
cin >> cmd;
if(cmd == "push_front")
{
cin >> arg;
deque.push_front(arg);
}
else if(cmd == "push_back")
{
cin >> arg;
deque.push_back(arg);
}
else if(cmd == "pop_front")
{
if(deque.empty()) cout << -1 << '\n';
else
{
cout << deque.front() << '\n';
deque.pop_front();
}
}
else if(cmd == "pop_back")
{
if(deque.empty()) cout << -1 << '\n';
else
{
cout << deque.back() << '\n';
deque.pop_back();
}
}
else if(cmd == "size")
{
cout << deque.size() << '\n';
}
else if(cmd == "empty")
{
if(deque.empty()) cout << 1 << '\n';
else cout << 0 << '\n';
}
else if(cmd == "front")
{
if(deque.empty()) cout << -1 << '\n';
else
{
cout << deque.front() << '\n';
}
}
else if(cmd == "back")
{
if(deque.empty()) cout << -1 << '\n';
else
{
cout << deque.back() << '\n';
}
}
}
return 0;
}