def solution(cacheSize, cities):
if cacheSize == 0:
return len(cities) * 5
answer = 0
cache = []
for i in cities:
i = i.lower()
if i not in cache:
answer += 5
else:
answer += 1
cache.remove(i)
if cacheSize <= len(cache):
cache.pop(0)
cache.append(i)
return answer
캐시 사이즈가 0일 경우 캐시의 기능을 활용하지 못하기에 cities의 수 만큼 5를 곱해 출력한다.
캐시 사이즈가 자연수일 경우 각 cities가 캐시에 존재하는지의 여부에 따라 5 혹은 1을 더한다.
추가로 캐시 사이즈와 현재 캐시내의 데이터 수를 비교하여 가장 처음 추가된 데이터를 제거할지 유지할지를 결정한다.