Least Recently Used

WooBuntu·2021년 3월 8일
0

JS 90제

목록 보기
30/33
function solution(size, tasks) {
  const cacheList = [];
  const cacheHash = {};
  for (const task of tasks) {
    if (cacheHash.hasOwnProperty(task)) {
      for (let i = cacheList.length; i > 0; i--) {
        if (cacheList[i] == task)
          [cacheList[i - 1], cacheList[i]] = [cacheList[i], cacheList[i - 1]];
      }
    } else {
      cacheHash[task] = true;
      cacheList.unshift(task);
      if (cacheList.length > size) {
        cacheList.pop();
        delete cacheHash[task];
      }
    }
  }
  return cacheList;
}

const result = solution(5, [1, 2, 3, 2, 6, 2, 3, 5, 7]);
console.log(result);

0개의 댓글