LIFO (Last In First Out)로 마지막에 삽입된 자료부터 출력 혹은 삭제되는 형태의 자료구조
한쪽 끝에서만 삽입과 삭제가 일어남

FIFO (First In First Out)로 첫번째로 삽입된 자료부터 출력 혹은 삭제되는 형태의 자료구조
한쪽 끝에서는 원소들이 삭제되고 반대쪽 끝에서는 원소들의 삽입만 가능하게 만든 순서화된 리스트

양쪽에서 삽입과 삭제가 가능한 구조로 스택과 큐의 연산을 모두 지원

stack의 경우 파이썬의 리스트를 이용하면 시간 복잡도 O(1)로 간단하게 구현할 수 있지만, 첫번째 값에 대해 동작하는 Queue와 Dequeue의 경우는 그렇지 못하다.
이럴 때 사용할 수 있는 파이썬 라이브러리가 있는데, 바로 deque이다.
deque는 양쪽에서 삽입과 삭제가 모두 가능하므로 stack, queue, dequeue로 모두 활용 가능하다.
deque로 선언한 리스트에서는 일반적인 리스트에서 사용할 수 있는 인덱싱, 슬라이싱 기능을 사용할 수는 없다. 하지만 리스트 양쪽에 데이터 삽입, 삭제에 대해서는 효율적이다.
from collections import deque
data = deque()
from collections import deque를 하게 되면 이제 deque 라이브러리 사용이 가능하다.
data1 = deque([2, 3, 4])
data2 = deque('hello')
와 같은 식으로 괄호안에 초기값을 넣어 줄 수도 있다.
삽입 : deque.append(item)
삭제 : deque.pop()
삽입 : deque.append(item)
삭제 : deque.popleft()
https://www.acmicpc.net/problem/10828
https://www.acmicpc.net/problem/10845
자료구조 수업 들을때 참고할게용~