인프런 커뮤니티 질문&답변

기하학곡선님의 프로필 이미지
기하학곡선

작성한 질문수

자바스크립트 알고리즘 문제풀이 입문(코딩테스트 대비)

5. LRU(카카오 캐시 변형 : 삽입정렬응용)

코드 리뷰 부탁드립니다.

작성

·

331

0

function solution(size, arr) {
        let answer = [0, 0, 0, 0, 0];
        arr.forEach((element) => {
          if (!answer.includes(element) && answer.length !== size) {
            answer.unshift(element);
          } else if (!answer.includes(element) && answer.length === size) {
            answer.pop();
            answer.unshift(element);
          } else if (answer.includes(element)) {
            let index = answer.findIndex((el) => el === element);
            let tmp = answer[index];
            answer.splice(index, 1);
            answer.unshift(tmp);
          }
        });
        return answer;
      }

forEach안에서 for문을 돌지 않고 짜봤습니다.

좀 코드가 지저분한것 같은데 괜찮은 코드일까요?
감사합니다.

답변 1

0

김태원님의 프로필 이미지
김태원
지식공유자

안녕하세요^^

잘 하신 코드입니다.

한 가지 말씀드리자면 includes 함수는 시간복잡도가 O(n)입니다. 즉 반복문이나 다름없습니다.

기하학곡선님의 프로필 이미지
기하학곡선

작성한 질문수

질문하기