가장 최근에 저장된 값 다음에 저장되고, 가장 최근에 저장된 값이 먼저 나간다.
-> LIFO (Last In First Out) 원칙
파이썬은 스택 자료형을 별도로 제공하지는 않지만, 리스트가 사실상 스택의 모든 연산을 지원한다.
스택과 동일하게 가장 최근에 저장된 값 다음에 새로운 값이 저장되지만, 가장 오래전에 저장된 값부터 나간다는 점에서 차이가 있다.
-> FIFO (First In First Out) 원칙
스택과 마찬가지로 리스트가 큐의 모든 연산을 지원하지만, 리스트는 동적 배열로 구현되어 큐의 연산을 수행하기에 효율적이지 않다. 따라서 파이썬에서 큐를 구현할 때는 덱을 이용한다.
큐를 list로 사용하지 않는 이유는,
pop()의 시간 복잡도는 O(1)이고, pop(0)의 시간 복잡도는 O(N)이기 때문이다. (첫번째 원소를 삭제한 후, 모든 원소를 앞으로 이동시키기 때문에)
list를 큐로 사용할 경우 시간이 오래 걸린다.