📄 문제
Lv 2. 2018 KAKAO BLIND RECRUITMENT [1차] 캐시
🔍 문제 접근
❓ 캐시 교체 알고리즘은 LRU
(Least Recently Used)를 사용한다.
💡 FIFO
로 캐시를 저장하자.
💡 캐시에 동일한 도시 이름이 저장되는 경우도 고려한다.
📝 문제 풀이
function solution(cacheSize, cities) {
if (0 === cacheSize) {
return cities.length * 5;
}
const cashedCities = [];
let time = 0;
cities.forEach(city => {
const isCashed = cashedCities.findIndex(cashedCity => cashedCity === city.toLowerCase());
if (isCashed >= 0) {
cashedCities.splice(isCashed, 1);
cashedCities.push(city.toLowerCase());
time += 1;
return;
}
if (cacheSize === cashedCities.length) {
cashedCities.shift();
}
cashedCities.push(city.toLowerCase());
time += 5;
});
return time;
}
'코딩테스트' 카테고리의 다른 글
[프로그래머스/Javascript] 의상 (0) | 2023.07.22 |
---|---|
[프로그래머스/Javascript] 점프와 순간 이동 (0) | 2023.07.22 |
[프로그래머스/Javascript] 짝지어 제거하기 (0) | 2023.07.16 |
[프로그래머스/Javascript] 구명보트 (0) | 2023.07.13 |
[프로그래머스/Javascript] 올바른 괄호 (0) | 2023.07.09 |