[Algorithm🧬] 캐시

또상·2021년 12월 16일
0

Algorithm

목록 보기
13/133
post-thumbnail

문제 / 풀이.py, 풀이.swift

python

def solution(cacheSize, cities):
    time = 0
    cache = []

    for city in cities:
        city = city.lower()
        # 처음에 이 경우를 생각을 안했다.
        # caccheSize 가 0 이면 miss 만 일어남.
        if cacheSize == 0:
            time += 5
            
        # 아니라면
        else:
            # hit
            if city in cache:
                # LRU 이기 때문에 그냥 삭제했다가 다시 넣었음.
                cache.remove(city)
                cache.append(city)
                time += 1
            # miss
            else:
                if len(cache) == cacheSize:
                    cache.pop(0)
                cache.append(city)
                time += 5

    return time



+ 수업 풀이 JavaScript

function solution(cacheSize, cities) {
    let time = 0;
    let cache = [];
    for (let i = 0; i < cities.length; i++) {
        let city = cities[i].toLowerCase();
        let index = cache.indexOf(city);
        if (index !== -1) {
            // hit
            cache.splice(index, 1);
            cache.push(city);
            time += 1;
        } else {
            // miss
            time += 5;
            cache.push(city);
            if (cacheSize < cache.length) {
                cache.shift();
            }
        }
    }
    return time;
}



0127 swift

코드는 거의 비슷해서 링크로만 첨부했다. 유독 채점이 오래 걸린다고 생각이 든 문제다. swift 가 느려서 그런 것도 있겠지..?

profile
0년차 iOS 개발자입니다.

0개의 댓글