Post List

[BOJ] 백준 10866 덱

백준 10866 덱



문제 링크 : https://www.acmicpc.net/problem/10866


이 문제는, 덱의 기본 원리를 그대로 코드로 옮기면 되는 문제 입니다.


덱은 앞/뒤 모두 입출력 할 수 있습니다. 하지만, 덱이 비어있을경우 입출력은 불가 하다는점을 알고 있다면 쉽게 풀 수 있는 문제 입니다.


소스코드 :

#include 
#include 
#include 
using namespace std;


int main() {
 
 int n;
 cin >> n; 
 deque dq;
 while (n--) {
  
  string s; cin >> s;
  
  if (s == "push_front") {
   cin.ignore();
   int a; cin >> a; cin.ignore();
   dq.push_front(a);
  }
  else if (s == "push_back") {
   cin.ignore();
   int b; cin >> b; cin.ignore();
   dq.push_back(b);
  }
  else if (s == "pop_back") {
   if (dq.empty()) {
    cout << "-1" << endl;
   }
   else {
    cout << dq.back() << endl;
    dq.pop_back();
   }
  }
  else if (s == "pop_front") {
   if (dq.empty()) {
    cout << "-1" << endl;
   }
   else {
    cout << dq.front() << endl;
    dq.pop_front();
   }
  }
  else if (s == "size") {
   cout << dq.size() << endl;
  }
  else if (s == "empty") {
   if (dq.empty()) cout << 1 << endl;
   else cout << 0 << endl;
  }
  else if (s == "front") {
   if (dq.size() == 0) {
    cout << -1 << endl;
   }
   else {
    cout << dq.front() << endl;
   }
   
  }
  else if (s == "back") {
   if (dq.size() == 0) {
    cout << -1 << endl;
   }
   else {
    cout << dq.back() << endl;
    
   }
  }
 }
}

댓글