def solution(cacheSize, cities):
time = 0
cache = []
for city in cities:
city = city.lower()
# 처음에 이 경우를 생각을 안했다.
# caccheSize 가 0 이면 miss 만 일어남.
if cacheSize == 0:
time += 5
# 아니라면
else:
# hit
if city in cache:
# LRU 이기 때문에 그냥 삭제했다가 다시 넣었음.
cache.remove(city)
cache.append(city)
time += 1
# miss
else:
if len(cache) == cacheSize:
cache.pop(0)
cache.append(city)
time += 5
return time
function solution(cacheSize, cities) {
let time = 0;
let cache = [];
for (let i = 0; i < cities.length; i++) {
let city = cities[i].toLowerCase();
let index = cache.indexOf(city);
if (index !== -1) {
// hit
cache.splice(index, 1);
cache.push(city);
time += 1;
} else {
// miss
time += 5;
cache.push(city);
if (cacheSize < cache.length) {
cache.shift();
}
}
}
return time;
}
코드는 거의 비슷해서 링크로만 첨부했다. 유독 채점이 오래 걸린다고 생각이 든 문제다. swift 가 느려서 그런 것도 있겠지..?