반응형
- 사용한지 가장 오래된 페이지를 교체.
- 현 시점에서 가장 오랫동안 사용하지 않은 페이지와 교체.
- 각 페이지마다 계수기를 두어 사용하는 기법
개념설명: https://youtu.be/6wulDqi6z-s
function solution(cacheSize, cities) {
var cache = [],
answer = 0,
cache_idx = 0;
if (cacheSize == 0) return cities.length * 5;
cities.map(city => {
city = city.toLowerCase();
cache_idx = cache.indexOf(city);
if (cache_idx > -1)
{
cache.splice(cache_idx, 1);
answer++; // Cache Hit (page change)
}
else if (cache.length >= cacheSize)
{
cache.shift();
}
cache.push(city);
});
return ((cities.length - answer) * 5) + answer;
}
반응형
'Programing > Algorithm' 카테고리의 다른 글
삽입 정렬 (Insertion Sort) 설명과 JavaScript 예제 (0) | 2025.05.21 |
---|---|
선택 정렬 (Selection Sort) 설명과 JavaScript 예제 (0) | 2025.05.21 |
버블 정렬 (Bubble Sort) 설명과 JavaScript 예제 (0) | 2025.05.21 |
jvascript array 경우의 수 구하기 (permute) (0) | 2022.02.15 |
콜라츠 추측 (0) | 2021.08.27 |
하샤드의 수 (Harshad Number) (0) | 2021.08.25 |
덧셈 뺄셈 동적 계산 (dynamic plus minus, Dynamic addition and subtraction) (0) | 2019.07.19 |
주민등록번호 체계 및 유효성 검사 (javascript) (2) | 2016.10.07 |