문제
코딩테스트 연습 - [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
풀이과정
LRU 알고리즘 (Least Recentely Used) 개념 및 구현방법
안녕하세요! daily_D 입니다! 👩🏻💻 오늘은 페이지 교체 알고리즘 중에서 LRU에 대해서 공부해볼까요?! LRU 란? 일단, LRU(Least Recently Used)는 가장 오랫동안 참조되지 않은 페이지를 교체하는 방
dailylifeofdeveloper.tistory.com
1. city 이름은 대소문자를 구분하지 않기때문에 전부 city.lower() 로 통일시켜준다
2. city 가 캐시에 있으면, 기존에 있던것을 제거하고 맨 뒤에 추가한다 (가장 최근에 참조되었다는것을 나타내기위해)
2-1. 없으면, 캐시에 추가하고 cacheSize 를 벗어나게 되면 가장 오래된 0번째 원소를 제거한다.
Code
def solution(cacheSize, cities):
cache = []
answer = 0
for city in cities:
# 1
city = city.lower()
# 2-1
if city in cache:
cache.remove(city)
cache.append(city)
answer += 1
# 2-2
else:
cache.append(city)
if len(cache) > cacheSize:
cache.pop(0)
answer += 5
return answer
반응형
'➰ 취업준비 > 알고리즘 문제풀이' 카테고리의 다른 글
[Python][백준_1012] 유기농 배추 (BFS) (0) | 2021.12.20 |
---|---|
[Python][백준_2493] 탑 (0) | 2021.12.20 |
[Python][프로그래머스] level 2 - 프렌즈4블록 (0) | 2021.12.14 |
[Python][프로그래머스] level 3 - 보석쇼핑 (0) | 2021.07.13 |
[Python][프로그래머스] level 1 - 실패율 (0) | 2021.07.10 |