-
카테고리
-
세부 분야
알고리즘 · 자료구조
-
해결 여부
미해결
hit가 발생한 후부터만 뒤로 하나씩 미는 방법
23.03.14 00:53 작성 조회수 218
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가 발생한 이후부터만 뒤로 한칸씩 미는 방법으로 코드를 짜봤습니다.
이렇게 작성해도 괜찮을까요? 반례 있을까요?
답변을 작성해보세요.
0
답변 1