백준 10866: 덱 해설- python
프로그래밍/백준

백준 10866: 덱 해설- python

728x90
반응형

백준

 

✏️ 문제

https://www.acmicpc.net/problem/10866

 

10866번: 덱

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

www.acmicpc.net

 

✏️ 풀이

파이썬의 collections.deque를 이용하였다.

사용법에 대한 내용은 여기에서

 

from collections import deque 
import sys

n=int(sys.stdin.readline())
dq=deque()
for _ in range(n):
  order=list(sys.stdin.readline().split())

  if order[0]=='push_front':
    dq.appendleft(order[1])

  elif order[0]=='push_back':
    dq.append(order[1])

  elif order[0]=='pop_front':
    if dq:
      x=dq.popleft()
      print(x)
    else:
      print(-1)

  elif order[0]=='pop_back':
    if dq:
      x=dq.pop()
      print(x)
    else:
      print(-1)

  elif order[0]=='size':
    print(len(dq))

  elif order[0]=='empty':
    if len(dq)==0:
      print(1)
    else:
      print(0)

  elif order[0]=='front':
    if dq:
      print(dq[0])
    else:
      print(-1)

  elif order[0]=='back':
    if dq:
      print(dq[-1])
    else:
      print(-1)

  else:
    print('예외')

 

728x90
반응형