https://school.programmers.co.kr/learn/courses/30/lessons/17680
프로그래머스
SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
1. 문제설명
- DB 캐시를 적용할 때 캐시 크기에 따른 실행 시간 측정 프로그램 작성
- LRU(Least Recently Used) 방법 사용
2. 문제해결
- 현재 값이 캐시 리스트 안에 있으면
- 현재 값 제거 후 맨 끝에 append, 실행시간+1
- 현재 값이 캐시 리스트 안에 없으면
- 꽉 찾으면 : popleft, append, 실행시간 + 5
- 비었으면 : append, 실행시간 + 5
<python />
def solution(cacheSize, cities):
from collections import deque
answer = 0
cache_list = deque()
if cacheSize == 0:
return 5 * len(cities)
for city in cities:
city = city.lower()
if city in cache_list:
cache_list.remove(city)
cache_list.append(city)
answer += 1
else:
if len(cache_list) < cacheSize:
cache_list.append(city)
else:
cache_list.popleft()
cache_list.append(city)
answer += 5
return answer
'Programming > CodingTest' 카테고리의 다른 글
[Leetcode 1091] Shortest Path in Binary Matrix (0) | 2025.02.11 |
---|---|
[Leetcode 200] Number of Islands (0) | 2025.02.11 |
[LeetCode 1] Two Sum (0) | 2025.02.09 |
[프로그래머스] 행렬과 연산 (0) | 2025.02.08 |
[프로그래머스] 양과 늑대 (0) | 2025.02.07 |