[프로그래머스 Lv2] [1차] 캐시(python)

문제

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

나의 코드 (답안참조)

"""
1. 아이디어

2. 시간복잡도

"""

def solution(cacheSize, cities):
    
    answer = 0
    n = len(cities)
    cache = []
    
    for i in range(n): # 대소문자 구분 안한다는 조건해결
        cities[i] = cities[i].lower()
        
    for city in cities:
        
        if city in cache: # cache hit
        	# used 되면 삭제 우선순위를 젤 뒤로 보냄
            cache.remove(city) 
            cache.append(city)
            answer += 1
        
        else: # cache miss
            cache.append(city)
            answer += 5
            
            # cache miss의 경우 값을 추가할 때 cacheSize가 초과되면 오래된 데이터는 삭제한다.
            if len(cache) == cacheSize + 1:
                cache.pop(0)
            
    return answer
    

설명

큐의 성질을 조금 섞어놓은 문제..

참고자료

좋은 웹페이지 즐겨찾기