작성
·
268
0
function solution(size, arr) {
const cache = new Array(size).fill(0);
let hit;
for (let i = 0; i < arr.length; i++) {
hit = false;
for (let j = cache.length - 1; j >= 0; j--) {
if (hit) {
cache[j + 1] = cache[j];
}
if (cache[j] === arr[i]) {
hit = true;
}
}
if (!hit) {
cache.unshift(arr[i]);
cache.pop();
} else cache[0] = arr[i];
}
return cache;
}
바깥 for문 처음에 캐시 배열에 찾는 값이 있는지 확인하는 반복문을 한번 돌지 않고, 한번만 반복문을 돌면서 hit가 발생한 이후부터만 뒤로 한칸씩 미는 방법으로 코드를 짜봤습니다.
이렇게 작성해도 괜찮을까요? 반례 있을까요?