문제

링크

풀이

#include <iostream>
#include <string>
#include <deque>
using namespace std;
 
void solve(void) {
  int n, x;
  cin >> n;
 
  string cmd;
  deque<int> dq;
  for (int i=0; i<n; i++) {
    cin >> cmd;
    if (cmd == "push_front") {
      cin >> x;
      dq.push_front(x);
    } else if (cmd == "push_back") {
      cin >> x;
      dq.push_back(x);
    } else if (cmd == "pop_front") {
      if (dq.empty()) {
        cout << "-1\n";
      } else {
        cout << dq.front() << "\n";
        dq.pop_front();
      }
    } else if (cmd == "pop_back") {
      if (dq.empty()) {
        cout << "-1\n";
      } else {
        cout << dq.back() << "\n";
        dq.pop_back();
      }
    } else if (cmd == "size") {
      cout << dq.size() << "\n";
    } else if (cmd == "empty") {
      cout << dq.empty() << "\n";
    } else if (cmd == "front") {
      if (dq.empty()) {
        cout << "-1\n";
      } else {
        cout << dq.front() << "\n";
      }
    } else if (cmd == "back") {
      if (dq.empty()) {
        cout << "-1\n";
      } else {
        cout << dq.back() << "\n";
      }
    }
  }
}
 
int main(void) {
  ios::sync_with_stdio(false);
  cin.tie(nullptr);
 
  solve();
  return 0;
}