본문 바로가기
프로그래머스/lv.2

[1차] 캐시

by bingual 2024. 2. 7.
반응형

 

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

'프로그래머스 > lv.2' 카테고리의 다른 글

기능개발  (0) 2024.02.08
튜플  (0) 2024.02.07
n^2 배열 자르기  (1) 2024.02.07
할인 행사  (1) 2024.02.07
괄호 회전하기  (1) 2024.02.06