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 |
댓글