
코드
function solution(cacheSize, cities) {
cities = cities.map((ele) => ele.toLowerCase());
let cache = [];
let second = 0;
if (cacheSize === 0) return cities.length * 5;
for (let i = 0; i < cities.length; i++) {
if (cache.includes(cities[i])) {
second++;
cache.splice(cache.indexOf(cities[i]), 1);
cache.push(cities[i]);
} else {
second += 5;
if (cache.length === cacheSize) cache.shift();
cache.push(cities[i]);
}
}
return second;
}
LRU(Least Recently Used)를 선입 후출개념으로 잘못이해해서 막혀있었다
말 그대로 열람이 안된것을 뒤로 미루는것인데
예를들어 cache에 [1,2,3,4]가 있을때 2가 새로 들어온다면
[2,3,4,2]가 아니라 [1,3,4,2]가 되어야한다
또한 cacheSize가 0일 때도 생각해줘야한다