본문 바로가기
BEB/algorithm

[JavaScript/자바스크립트] 순열의 순서

by ddanss 2022. 10. 25.
728x90

 

//3,1,2,4면 첫번째 자리에 1,2인 경우를 모두 지나친거니 
//1 3*2*1
//2 3*2*1 이런식으로 팩토리얼이 적용된다
//3,1,2,4인 경우 첫번쨰 짜리만 따지면 2*3*2*1 이런식인거다
function orderOfPresentation (N, K) {
    // TODO: 여기에 코드를 작성합니다.
    let arr = [];
    let result = 0;
    let factorial = new Array(N + 1).fill(1);
    let repeatNum;
    for(let i=1;i<=15;i++) {
        factorial[i] = factorial[i-1]*i;
    }

    for(let i=0;i<N;i++) {
        arr.push(K[i]); //3을 넣어
        repeatNum = K.filter((el) => K[i] > el && !arr.includes(el)).length;
        //repeatNum은 K배열에서 배열에서 숫자가 더 작고 이미 나온 숫자가 아닌것의 길이를 출력 
        //맨앞이 3이였을때 1과 2를 찾는 과정이다.
        result += repeatNum * factorial[N-i-1];
        //이게 2*3*2*1 그 과정
    }
    return result;
}

 

반응형

'BEB > algorithm' 카테고리의 다른 글

[js] 버블정렬  (0) 2022.10.28
[javaScript/자바스크립트]부분집합인지 확인  (0) 2022.10.27
[javascript] split의 사용법  (1) 2022.10.13
꼬리재귀, 조합, 하노이  (0) 2022.10.11
재귀(recursion) 개념 & JSON  (0) 2022.10.11

댓글