본문 바로가기

Coding Test/Programmers

[프로그래머스/파이썬] [1차] 캐시

728x90

 

 

나의 풀이

from collections import deque

def solution(cacheSize, cities):
    if not cacheSize:
        return 5 * len(cities)
    cache = deque()
    answer = 0
    for c in cities:
        c = c.lower()
        if c in cache:
            cache.remove(c)
            answer += 1
        else:
            if len(cache) == cacheSize:
                cache.popleft()
            answer += 5
        cache.append(c)

    return answer

 

 

deque의 maxlen을 활용한 풀이

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

 

 

 

 

 

 

반응형