순열 재귀 로직

순열 재귀

순서를 정할 배열을 가져와서, === stuffArr ⇒ filtered
재귀함수에 인자로 넣어주고, === recursive(filtered, [] , choiceNum)
데이터를 담을 배열을 하나 새로 만들어주고 인자로 담는다. === result
반복할 횟수를 인자로 담는다. (보통 순서정할 배열의 길이)
  • 재귀함수 짜기 === 복사한 배열을 컨트롤한다.
  • 탈출조건 === if(choiceNum === 0)
  1. 인자로 받아온 반복횟수를 --해줘서 0이될때 리턴
보통 2번의 방법을 쓰기 때문에, 2번 방법으로 통일하자.
  • 재귀 로직짜기
  1. for문 반복문을 통해 순서정할 0번인덱스 값부터 변수에 담아준다
  1. 중복순열을 제외하고는 기존의 배열을 자르거나 해야하기 때문에 slice메서드를 이용하여 배열을 복사한다.
  • 여기서 순열일때, clone된 배열을 cloneArr.splice(i,1)로 빼주고 재귀 함수 호출 인자로 (cloneArr,bucket.concat(choice),n-1)
  • 조합일때, 재귀함수 호출 (cloneArr.slice(i+1), bucket.concat(choice),n-1)