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

kmj06030님의 프로필 이미지
kmj06030

작성한 질문수

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

10. 순열 구하기

질문 드립니다 !!

작성

·

286

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;
}

답변 2

0

kmj06030님의 프로필 이미지
kmj06030
질문자

넵 감사합니다 !!

0

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

안녕하세요^^

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

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

kmj06030님의 프로필 이미지
kmj06030

작성한 질문수

질문하기