Notice
Recent Posts
Recent Comments
Link
나의 개발일지
[프로그래머스] Lv.2 [1차] 캐시 [Python, 파이썬] 본문
- 문제 : https://school.programmers.co.kr/learn/courses/30/lessons/17680#qna
- 2018 KAKAO BLIND RECRUITMENT 문제
- LRU (Least Recently Used)를 구현해야 하는 문제
- 🔑 :
- 캐시 사이즈 = 4
- 현재 lru = [1, 2, 3, 4]
- 새로 들어온 도시가 2일 때
- lru = [2, 3, 4, 2] 가 아닌 lru = [1, 3, 4, 2]가 되어야 한다.
def solution(cacheSize, cities):
answer = 0
lru = [] # 캐시 저장 리스트
for city in cities: # 도시이름을 쭉 방문
if city.lower() in lru: # 대소문자 구분 때문에 소문자로 변환 후 캐시에 있는지 확인
answer += 1 # 캐시에 적중했으면 +1
lru.pop(lru.index(city.lower())) # 적중한 캐시를 빼냄
else:
answer += 5 # 캐시 적중 실패 시 +5
lru.append(city.lower()) # 캐시에 도시이름 넣기
if len(lru) > cacheSize: # 캐시 크기보다 커지면
lru.pop(0) # 가장 먼저 들어간 캐시 빼냄
return answer
'프로그래머스' 카테고리의 다른 글
[프로그래머스] Lv.3 보석 쇼핑 [Python, 파이썬] (0) | 2023.06.09 |
---|---|
[프로그래머스] Lv.3 단어 변환 [Python, 파이썬] (0) | 2023.06.05 |
[프로그래머스] Lv.2 괄호 회전하기 [Python, 파이썬] (0) | 2023.05.17 |
[프로그래머스] Lv.2 구명보트 [Python, 파이썬] (0) | 2023.05.16 |
[프로그래머스] [KAKAO] Lv.2 주차 요금 계산 [Python, 파이썬] (0) | 2023.04.13 |
Comments