프로그래머스 : 2018 KAKAO BLIND RECRUITMENT 1차 캐시

2021. 10. 23. 02:08문제풀기/프로그래머스

https://programmers.co.kr/learn/courses/30/lessons/17680

 

코딩테스트 연습 - [1차] 캐시

3 ["Jeju", "Pangyo", "Seoul", "NewYork", "LA", "Jeju", "Pangyo", "Seoul", "NewYork", "LA"] 50 3 ["Jeju", "Pangyo", "Seoul", "Jeju", "Pangyo", "Seoul", "Jeju", "Pangyo", "Seoul"] 21 2 ["Jeju", "Pangyo", "Seoul", "NewYork", "LA", "SanFrancisco", "Seoul", "Ro

programmers.co.kr

단순 구현 문제

queue를 이용해서 캐시를 구현하면 된다.

from collections import deque
def solution(cacheSize, cities):
    answer = 0
    cache = deque([])

    if cacheSize == 0:
        return len(cities)*5
    
    for city in cities:
        city = city.lower()
        
        if city in cache:
            cache.remove(city)
            cache.append(city)
            answer += 1
        else:
            if len(cache) == cacheSize:
                cache.popleft()
            cache.append(city)
            answer += 5
    
    return answer