[プログラマLV 2]キャッシュ


1.問題の説明
キャッシュ
2.問題分析
キャッシュ・サイズに基づいてキャッシュ・リストを作成し、キャッシュ内にあるかどうかを都市順に確認します.Cacheヒット時にヒットした都市を最後尾に追加し(cache[1])、cacheがヒットしていない場合にすぐにcacheに追加できる場合は、最前面を削除して追加する(cache[0]).LRUの使い方が鍵です.CacheSize=0は,都市の都市をより低く統一する()などが付加的な要因である.
3.私の回答
def solution(cacheSize, cities):
    cache = []
    total = 0
    cities = [city.lower() for city in cities]
    
    if cacheSize == 0: return len(cities) * 5
    
    for city in cities:
        if city not in cache:
            total += 5
            if len(cache) < cacheSize:
                cache.append(city)
            else:
                cache.pop(0)
                cache.append(city)
        else:
            total += 1
            cache.remove(city)
            cache.append(city)

    return total