[アルゴリズム]プログラマ-[メインキャッシュ]


2018 KAKAO BLIND RECRUITMENT-[メインキャッシュ]

説明する

from collections import deque
def solution(cacheSize, cities):
    if cacheSize == 0:
        return 5 * len(cities)

    queue = deque()
    time = 0
    for city in cities:
        city = city.lower()
        if city in queue:
            queue.remove(city)
            queue.append(city)
            time += 1
            continue
        else:
            if len(queue) < cacheSize:
                queue.append(city)
            else:
                if queue:
                    queue.popleft()
                queue.append(city)
            time += 5
    return time
これは比較的容易な問題であるが、大文字と小文字を区別しない小さな条件を逃したため、初めて通過できなかった.次に、cache hitを行う際、それを最新に更新すべきか分からないので通過しなかった.LUを再確認して合格しました.

ソース:https://gomguard.tistory.com/115