캐시
LRU 알고리즘
을 고대로 구현하면 되는 문제이다.LRU는 가장 오랫동안 참조되지 않은 것을 교체하는 알고리즘이기 때문에,
cache hit시에 해당 페이지를 삭제한 후 다시 맨 뒤에 append해주고, 페이지를 교체할 때는 맨 앞의 것을 pop해주는 식으로 구현했다.
👨💻 소스 코드
def solution(cacheSize, cities): answer = 0 queue = [] if cacheSize == 0: return len(cities) * 5 for city in cities: city = city.lower() if city in queue: answer += 1 queue.remove(city) else: answer += 5 if queue and len(queue) == cacheSize: del queue[0] queue.append(city) return answer