문제
Numbers 배열을 첫 번째이자 유일한 인수로 사용하는 JavaScript 함수를 작성해야 합니다.
우리 함수는 입력 배열을 기반으로 새 배열을 준비해야 합니다. 그리고 이 새 배열의 각 해당 요소는 원래 배열의 해당 요소보다 작은 요소의 개수여야 합니다.
예를 들어, 함수에 대한 입력이 -
인 경우const arr = [4, 7, 1, 4, 7, 5, 3, 8, 9];
그러면 출력은 다음과 같아야 합니다. -
const output = [2, 4, 0, 1, 2, 1, 0, 0, 0];
출력 설명:
오른쪽에 있는 4보다 작은 숫자는 2(1 및 3)이고 7의 경우 4(1, 4, 5, 3) 등입니다.
예시
이에 대한 코드는 -
const arr = [4, 7, 1, 4, 7, 5, 3, 8, 9]; const countSmaller = (array = [], num) => array.reduce((acc, val) => { if(val < num){ acc++; }; return acc; }, 0); const smallerArray = (arr = []) => { const res = []; for(let i = 0; i < arr.length; i++){ const el = arr[i]; res[i] = countSmaller(arr.slice(i, arr.length), el); }; return res; }; console.log(smallerArray(arr));
출력
콘솔의 출력은 다음과 같습니다. -
[ 2, 4, 0, 1, 2, 1, 0, 0, 0 ]