링크: https://school.programmers.co.kr/learn/courses/30/lessons/17680
유형: 구현
난이도: Lv.2
스스로 풀었는가? ✅
특이사항: 2018 KAKAO BLIND RECRUITMENT 문제
💻 작성 코드
def solution(cacheSize, cities):
cities_in_cache = []
total_time = 0
CACHE_MISS_TIME = 5
CACHE_HIT_TIME = 1
if cacheSize == 0:
total_time = len(cities) * CACHE_MISS_TIME
return total_time
for city in cities:
city = city.lower()
if city not in cities_in_cache:
total_time += CACHE_MISS_TIME
if len(cities_in_cache) >= cacheSize:
cities_in_cache.pop(0)
cities_in_cache.append(city)
else:
total_time += CACHE_HIT_TIME
cities_in_cache.remove(city)
cities_in_cache.append(city)
return total_time
캐시 교체 알고리즘인 LRU를 기반으로 나온 문제라 좀 재밌었다.
캐시 알고리즘 복습해야겠다..
[ktb-algorithm-study] 2주차