PS

프로그래머스. 캐시

tose33 2021. 9. 23. 15:01

https://programmers.co.kr/learn/courses/30/lessons/17680#

 

코딩테스트 연습 - [1차] 캐시

3 ["Jeju", "Pangyo", "Seoul", "NewYork", "LA", "Jeju", "Pangyo", "Seoul", "NewYork", "LA"] 50 3 ["Jeju", "Pangyo", "Seoul", "Jeju", "Pangyo", "Seoul", "Jeju", "Pangyo", "Seoul"] 21 2 ["Jeju", "Pangyo", "Seoul", "NewYork", "LA", "SanFrancisco", "Seoul", "Ro

programmers.co.kr

 

list 자료구조를 이용하면 캐시에 들어온 순서를 기억하지 않아도 된다.

 

들어온 도시가 캐시에 없고 캐시가 꽉찼다면? 도시를 list.push_back해주고 list.pop_front()해준다. 

들어온 도시가 캐시에 있다면? 해당 도시를 리스트에서 erase하고 또다시 뒤에 push_back 해준다.

 

이렇게 하면 리스트의 가장 앞의 원소가 LRU (Leat recently used), 즉 가장 사용한지 오래된 원소가 된다.