728x90

🏆 목차.

  1. 문제
  2. 코드
  3. 풀이

 

🛒 문제

 

백준-10866번-덱
백준 10866번 덱

 

🎨 코드

 

#include<iostream>
#include<string>
#include<deque>

using namespace std;

int main()
{
    int n;
    cin >> n;

    deque<int> deq;
    while (n--)
    {
        string str;
        cin >> str;

        if (str == "push_back")
        {
            int value;
            cin >> value;
            deq.push_back(value);
        }
        else if (str == "push_front")
        {
            int value;
            cin >> value;
            deq.push_front(value);
        }
        else if (str == "front")
        {
            if (deq.empty())
                cout << -1 << '\n';
            else
                cout << deq.front() << '\n';
        }
        else if (str == "back")
        {
            if (deq.empty())
                cout << -1 << '\n';
            else
                cout << deq.back() << '\n';

        }
        else if (str == "size")
        {
            cout << deq.size() << '\n';
        }
        else if (str == "pop_front")
        {
            if (deq.empty())
                cout << -1 << '\n';
            else
            {
                cout << deq.front() << '\n';
                deq.pop_front();
            }
        }
        else if (str == "pop_back")
        {
            if (deq.empty())
                cout << -1 << '\n';
            else
            {
                cout << deq.back() << '\n';
                deq.pop_back();
            }
        }
        else if (str == "empty")
        {
            if (deq.empty())
                cout << 1 << '\n';
            else
                cout << 0 << '\n';
        }
    }
}

 

🎯 풀이

 

문제 덱은 Deque의 기능을 다뤄보는 문제입니다.

Deque는 Queue와 Stack의 특징을 모두 가지고 있는 데이터 타입입니다.

Stack은 FILO(First-In-Last-Out)으로 먼저 들어온 데이터가 가장 마지막에 나가고,

Queue는 FIFO(First-In-First-Out)으로 먼저 들어온 데이터가 가장 먼저 나갑니다.

Deque는 양 옆으로 데이터의 삽입, 삭제가 가능해 두 데이터 타입의 특징을 다 가지고 있다고 볼 수 있습니다.

728x90

+ Recent posts