"이전 시간에 드럭워즈에서는 순서가 매우 중요하다" 라고 말씀 드렸습니다.
순열은 Permutation의 앞글자를 따서 P로 나타냅니다.
1P1 1
2P2 2
3P3 6
4P4 24
5P5 120
6P6 720
7P7 5040
8P8 40320
9P9 362880
10P10 3628800
1-4개 까진 어떻게 해보겠는데 ... 그 이상이 되면 맨붕이 됩니다 -_-;
let len = 0;
function doPermutation(arr, startIdx){
let length = arr.length;
if(startIdx == length-1){
// console.log( arr );
len++;
}
for(let i=startIdx; i<length; i++){
swap(arr, startIdx, i);
doPermutation(arr, startIdx+1);
swap(arr, startIdx, i);
}
}
function swap(arr, n1, n2){
let temp = arr[n1];
arr[n1] = arr[n2];
arr[n2] = temp;
}
function init(){
let arr = [0];
for(let i=1;i<=10;i++){
doPermutation(arr,0);
console.log(`${i}P${i}`, len);
len = 0;
arr.push(i);
}
}
init();