프로그래머스 LV2 - [1차] 캐시
내 풀이
def solution(cacheSize, cities):
cache = []
time = 0
for city in cities:
if city.lower() in cache:
time += 1
cache.pop(cache.index(city.lower()))
cache.append(city.lower())
else:
time += 5
if len(cache) == cacheSize and cacheSize > 0:
cache.pop(0)
cache.append(city.lower())
elif cacheSize > 0:
cache.append(city.lower())
else:
continue
return time
다른 풀이
def solution(cacheSize, cities):
import collections
cache = collections.deque(maxlen=cacheSize)
time = 0
for i in cities:
s = i.lower()
if s in cache:
cache.remove(s)
cache.append(s)
time += 1
else:
cache.append(s)
time += 5
return time
풀이 해석
- cache를 deque함수의 maxlen 기능을 이용해 불필요한 코드를 최소화하였다
- remove를 통해 cache hit를 해결하였다
배울 점
- deque함수의 maxlen기능
- remove를 통해 해당 원소 바로 삭제
댓글남기기