본문 바로가기
알고리즘 문제 풀이/Programmers

[18회차] 캐시

by 중앙백 2021. 12. 28.

Programmers Level.2 캐시

def solution(cacheSize, cities):
    if cacheSize == 0:
        return len(cities) * 5
    answer = 0
    cache = []
    for city in cities:
        city = city.upper()
        if city in cache:
            cache.remove(city)
            answer += 1
        else:
            answer += 5
            if len(cache) == cacheSize:
                cache.pop(0)
        cache.append(city)
    return answer

 - list를 이용해서 구현

def solution(cacheSize, cities):
    import collections
    cache = collections.deque(maxlen=cacheSize)
    time = 0
    for i in cities:
        s = i.lower()
        if s in cache:
            cache.remove(s)
            cache.append(s)
            time += 1
        else:
            cache.append(s)
            time += 5
    return time

 - deque에 maxlen기능을 활용해서 구현한 방법이 있길래 신기해서 가져와봤다..

 

 

 

댓글