https://leetcode.com/problems/lru-cache/ 기본적인 전략은 값을 리스트 형태로 저장하고 PUT 또는 GET을 실행할 때마다 해당 값을 맨 앞으로 옮기고 ( 리스트의 앞에 있을수록 가장 최근의 사용한 값을 의미), 만약 리스트의 노드 수가 capacity를 넘으면 마지막 노드를 제거하여 capacity를 유지한다. 노드의 위치를 변경하기 위해서는 ArrayList보다, Linked List가 적합하고 노드의 앞뒤 탐색을 위해 Double LinkedList를 쓰기로 한다. 그리고 실행 시 O(1)의 시간 복잡도를 요구하고 있기 때문에 Map을 활용하여 값을 탐색하기로 한다. (만약 Map없이 Linked List만으로 구현을 하게되면 시간 복잡도는 O(N)이 된다.) GET ..