• 카테고리

    질문 & 답변
  • 세부 분야

    알고리즘 · 자료구조

  • 해결 여부

    미해결

질문 드립니다 !!

23.04.28 10:43 작성 조회수 225

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

질문자

2023.05.02

넵 감사합니다 !!

0

안녕하세요^^

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

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