https://school.programmers.co.kr/learn/courses/30/lessons/118667
처음에는 단순 for문의 반복 횟수의 문제라고 생각했다. 왜나면 pop(0)과 같은 연산이 모두 시간복잡도가 O(n)일거라 생각했기 때문이다.
from collections import deque
위 라이브러리를 이용해서 파라미터로 들어온 리스트를 deque로 바꿔주고 pop(0)대신에 popleft() 함수로 pop해주었다.
deque.append(a) : 맨 오른쪽(뒷쪽)에 원소 추가
deque.appendleft(a): 맨 왼쪽(앞쪽)에 원소 추가
deque.pop() : 맨 오른쪽(뒷쪽) 원소 pop
deque.popleft() : 맨 왼쪽(앞쪽) 원소 pop
-> 모두 시간복잡도 O(1)