문제
풀이
function solution(size, arr) {
const cach = [];
for (let i = 0; i < arr.length; i++) {
if (cach.includes(arr[i])) {
cach.unshift(arr[i]);
cach.splice(cach.indexOf(arr[i]), 1);
} else {
if (cach.length > size - 1) cach.pop();
cach.unshift(arr[i]);
}
}
return cach;
}
let arr = [1, 2, 3, 2, 6, 2, 3, 5, 7];
console.log(solution(5, arr));
현재 작업을 캐시배열의 맨 앞에 두고 뒷 숫자들은 한 칸씩 밀려나도록 한다.
만약 캐시배열에 있었던 작업이라면 캐시배열에서 해당 작업의 인덱스 값을 지우고 맨 앞에 둔다.
캐시배열에 없었던 작업이고 캐시배열이 꽉 차있는 상황이라면 맨 뒤의 값을 삭제하고 진행한다.
'코딩테스트 문제풀이 > inflearn' 카테고리의 다른 글
[인프런] Node.js / 섹션7-정렬과 그리디, 결정알고리즘 / 7. 좌표정렬 (0) | 2023.02.15 |
---|---|
[인프런] Node.js / 섹션7-정렬과 그리디, 결정알고리즘 / 6. 장난꾸러기 현수 (0) | 2023.02.15 |
[인프런] Node.js / 섹션7-정렬과 그리디, 결정알고리즘 / 4. 삽입정렬 (0) | 2023.02.15 |
[인프런] Node.js / 섹션7-정렬과 그리디, 결정알고리즘 / 3. Special Sort(구글 인터뷰) (0) | 2023.02.15 |
[인프런] Node.js / 섹션7-정렬과 그리디, 결정알고리즘 / 2. 버블정렬 (0) | 2023.02.15 |