[1차] 캐시 자바스크립트

HyosikPark·2020년 11월 30일
0

알고리즘

목록 보기
52/72
function solution(cacheSize, cities) {
    
    let times = 0;
    let cache = [];
    
    if(!cacheSize) return 5 * cities.length;
    
    cities.forEach((city) => {
        
        city = city.toLowerCase();
        
        if(cache.includes(city)) {
            cache.splice(cache.indexOf(city),1);
            times += 1;
        } else {
            if(cache.length == cacheSize) cache.shift();
            times += 5;
        }
            cache.push(city)
    })
    return times 
}

LRU(Least Recently Used) 캐시 교체 알고리즘
캐시에 최대로 저장할 수 있는 Size가 정해져 있고, 캐시에는 최근에 사용한 순서대로 자료가 쌓이게 된다.
캐시사이즈가 꽉 채워진 경우 가장 오랫동안 쓰이지 않은 자료를 shift()하고 새로운 자료를 push()한다.

cache hit : 캐시에서 자료를 꺼내 쓴 경우.
cache miss : 캐시에 자료가 없는 경우

0개의 댓글