Computer >> 컴퓨터 >  >> 프로그램 작성 >> JavaScript

JavaScript에서 배열을 고유하게 만들기

<시간/>

문제

첫 번째이자 유일한 인수로 숫자 배열, arr를 취하는 JavaScript 함수를 작성해야 합니다.

이동은 arr[i]를 선택하고 1씩 증가시키는 것으로 구성됩니다. 우리 함수는 배열 arr의 모든 값을 고유하게 만들기 위해 최소 이동 횟수를 반환해야 합니다.

예를 들어, 함수에 대한 입력이 -

인 경우
const arr = [12, 15, 7, 15];

그러면 출력은 다음과 같아야 합니다. -

const output = 1;

출력 설명

15에서 16까지 증가시키면 배열이 모든 고유한 요소로 구성되기 때문입니다.

예시

이에 대한 코드는 -

const arr = [12, 15, 7, 15];
const makeUnique = (arr = []) => {
   arr.sort((a, b) => a - b);
   let count = 0;
   for (let i = 1; i < arr.length; i++) {
      if (arr[i] <= arr[i - 1]) {
         const temp = arr[i]
         arr[i] = arr[i - 1] + 1
         count += arr[i] - temp
      };
   };
   return count;
};
console.log(makeUnique(arr));

출력

콘솔의 출력은 -

1