만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

덱

면접 대비

시간 제한0.5초메모리 제한256 MB

요약
최대 10000개의 push, pop, size, empty, front, back 명령을 정수 덱에 처리하고 각 조회 결과를 출력합니다.
난이도

쉬움10점 중 3점

유형
큐, 구현
정답자
아직 제출이 없습니다

문제

정수를 저장하는 덱(deque)을 구현하고, 입력으로 주어지는 명령을 처리하는 프로그램을 작성하시오.

명령은 여덟 가지이다.

  • push_front X: 정수 X를 덱의 앞에 넣는다.
  • push_back X: 정수 X를 덱의 뒤에 넣는다.
  • pop_front: 덱의 가장 앞에 있는 수를 빼고 그 수를 출력한다. 덱이 비어 있으면 -1을 출력한다.
  • pop_back: 덱의 가장 뒤에 있는 수를 빼고 그 수를 출력한다. 덱이 비어 있으면 -1을 출력한다.
  • size: 덱에 들어 있는 정수의 개수를 출력한다.
  • empty: 덱이 비어 있으면 1, 비어 있지 않으면 0을 출력한다.
  • front: 덱의 가장 앞에 있는 정수를 출력한다. 덱이 비어 있으면 -1을 출력한다.
  • back: 덱의 가장 뒤에 있는 정수를 출력한다. 덱이 비어 있으면 -1을 출력한다.

입력

첫째 줄에 명령의 수 NN (1≤N≤100001 \le N \le 10000)이 주어진다. 둘째 줄부터 NN개의 줄에 명령이 한 줄에 하나씩 주어진다. 주어지는 정수는 1 이상 100000 이하이다. 위에 적힌 여덟 가지 이외의 명령은 주어지지 않는다.

출력

출력해야 하는 명령이 주어질 때마다 그 결과를 한 줄에 하나씩 출력한다.

예제4

  1. 예제 1

    입력
    15
    push_back 1
    push_front 2
    front
    back
    size
    empty
    pop_front
    pop_back
    pop_front
    size
    empty
    pop_back
    push_front 3
    empty
    front
    
    예상 출력
    2
    1
    2
    0
    2
    1
    -1
    0
    1
    -1
    0
    3
    
  2. 예제 2

    입력
    22
    front
    back
    pop_front
    pop_back
    push_front 1
    front
    pop_back
    push_back 2
    back
    pop_front
    push_front 10
    push_front 333
    front
    back
    pop_back
    pop_back
    push_back 20
    push_back 1234
    front
    back
    pop_back
    pop_back
    
    예상 출력
    -1
    -1
    -1
    -1
    1
    1
    2
    2
    333
    10
    10
    333
    20
    1234
    1234
    20
    
  3. 예제 3

    입력
    1
    size
    
    예상 출력
    0
    
  4. 예제 4

    입력
    4
    push_back 100000
    back
    front
    pop_front
    
    예상 출력
    100000
    100000
    100000