SMALL
문제 출처
풀이 코드
캐시 알고리즘은 최근 사용하거나 자주 사용하는 데이터 항목을 빠른 계산이 가능한 메모리 위치에 유지시키는 구조입니다.
최근 사용한 데이터를 캐시 리스트에 넣고,
캐시 리스트가 다 차면 가장 덜 사용한 데이터부터 제거한 뒤 최근 사용한 데이터를 캐시 리스트에 넣어주면 됩니다.
def solution(cacheSize, cities):
cities = list(map(lambda x: x.lower(), cities))
cache = []
answer = 0
if cacheSize == 0:
return len(cities) * 5
else:
for city in cities:
if city in cache:
cache.remove(city)
cache.append(city) # 최근에 사용할수록 리스트 마지막에 더해짐
answer += 1
else:
if len(cache) >= cacheSize:
cache.pop(0) # 가장 덜 사용될수록 리스트 첫번째에 오게 됨
cache.append(city)
answer += 5
return answer
문제풀이 팁
list(map(lambda())) 로 작성한 부분을 [x.lower() for x in cities] 로도 쓸 수 있다
cache.remove(item)을 cache.pop(cache.index(item)) 으로 바꿀 수 있다
캐시 알고리즘 개념 확인하러 가기↓↓↓↓↓↓
LIST
'알고리즘-python > Programmers 문제' 카테고리의 다른 글
[프로그래머스/1단계/파이썬(Python3)] 숫자 문자열과 영단어 (0) | 2021.07.15 |
---|---|
[프로그래머스/2단계/파이썬(Python3)] 점프와 순간이동 (0) | 2021.07.14 |
[프로그래머스/2단계/파이썬(Python3)] 더 맵게 (0) | 2021.07.08 |
[프로그래머스/2단계/파이썬(Python3)] 삼각달팽이 (0) | 2021.07.07 |
[프로그래머스/1단계/파이썬(Python3)] 모의고사 (0) | 2021.07.04 |