반응형
https://school.programmers.co.kr/learn/courses/30/lessons/17680
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
문제풀이
LRU 알고리즘은 가장 최근에 사용되지 않은 항목을 교체한다.
- 캐시크기 이하라면 항목을 캐시에 저장
- 캐시크기를 초과한다면 첫 번째 항목 제거
- 캐시가 히트했다면 갱신
따라서 이 세가지만 지켜주면서 알고리즘을 구현하면된다.
from collections import deque
def solution(cacheSize, cities):
answer = 0
cache = deque(maxlen=cacheSize)
for city in cities:
city = city.lower()
if city in cache:
answer += 1
cache.remove(city)
else:
answer += 5
cache.append(city)
return answer