www.acmicpc.net/problem/10866

 

10866번: 덱

첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지 ��

www.acmicpc.net

#include <cstdio>
#include <deque>
using namespace std;

int main(void)
{
  deque<int> deq;

  int n = 0;
  char pushes[12];
  int pushData;

  scanf("%d", &n);
  while(n--)
  {
    scanf("%s", pushes);
    switch (pushes[0])
    {
      case 's' :
        printf("%lu\n", deq.size());
        break;
      case 'e' :
        printf("%d\n", deq.empty());
        break;
      case 'f' :
        printf("%d\n", deq.empty() ? -1 : deq.front());
        break;
      case 'b' :
        printf("%d\n", deq.empty() ? -1 : deq.back());
        break;
      case 'p' :
        if(pushes[1] == 'u')
        {
          scanf("%d", &pushData);
          if(pushes[5] == 'f')
          {
            deq.push_front(pushData);
          }
          else
          {
            deq.push_back(pushData);
          }
        }
        else
        {
          if(pushes[4] == 'f')
          {
            if(deq.empty())
            {
              printf("%d\n", -1);
            }
            else
            {
              printf("%d\n", deq.front());
              deq.pop_front();
            }
          }
          else
          {
            if(deq.empty())
            {
              printf("%d\n", -1);
            }
            else
            {
              printf("%d\n", deq.back());
              deq.pop_back();
            }
          }
        }
    }
  }
}

[Try]

1. 성공

 

[Point]

1. 문제 제목처럼 덱 자료구조의 사용. 앞뒤로 빼고 넣을 수 있는 형태이다. STL 기본제공

 

[More]

1. 이런 문제는 꼭 직접 짜보기

'PS > BOJ' 카테고리의 다른 글

[백준] 1436.cpp : 영화감독 숌  (0) 2020.05.13
[백준] 11866.cpp : 요세푸스 문제 0  (0) 2020.05.12
[백준] 10845.cpp : 큐  (0) 2020.05.11
[백준] 1065.py : 한수  (0) 2020.05.11
[백준] 4673.py : 셀프 넘버  (0) 2020.05.11

+ Recent posts