인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

Inflearn Community Q&A

kmj060304080's profile image
kmj060304080

asked

Introduction to Javascript Algorithm Problem Solving (Coding Test Preparation)

10. Finding Permutations

질문 드립니다 !!

Written on

·

315

0

저는 check 배열을 사용하지 않고 재귀함수를 탈 때마다 tmp에 포함된 원소를 제외한 배열을 함께 보내서 답을 구하는 식으로 아래 코드를 구현했습니다!!

이렇게 구현한다면 강사님의 코드와 비교했을 때 시간이 오래 걸린다던가 하는 문제가 있을까요??

function solution(arr, n) {
  let answer = [];
  let tmp = Array.from({ length: n }, () => 0);
  function DFS(L, arr) {
    if (L === n) {
      answer.push(tmp.slice());
    } else {
      for (let x of arr) {
        tmp[L] = x;
        let duplArr = arr.slice();
        duplArr.splice(duplArr.indexOf(x), 1);
        DFS(L + 1, duplArr);
      }
    }
  }
  DFS(0, arr);
  return answer;
}
javascript코딩-테스트

Answer 2

0

kmj060304080님의 프로필 이미지
kmj060304080
Questioner

넵 감사합니다 !!

0

codingcamp님의 프로필 이미지
codingcamp
Instructor

안녕하세요^^

재귀안에서 splice나 indexOf를 사용하는게 속도가 느려지는 효과가 있습니다.

영상에서 하는 방법을 추천합니다.

kmj060304080's profile image
kmj060304080

asked

Ask a question