[알고리즘] 프로그래머스 - [1차 캐시]

2018 KAKAO BLIND RECRUITMENT - [1차 캐시]

내 풀이

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를 했을 때, 그것을 제일 최신 것으로 갱신해줘야한 다는 것을 몰라서 통과하지 못했다. LRU를 다시 확인하고 통과했다.

출처 : https://gomguard.tistory.com/115

좋은 웹페이지 즐겨찾기