문제
1차원 공간에서 다른 소행성의 위치를 나타내는 배열 arr을 받는 JavaScript 함수를 작성해야 합니다.
각 소행성의 절대값은 크기를 나타내고 기호는 방향을 나타냅니다(양수는 오른쪽, 음수는 왼쪽). 각 소행성은 같은 속도로 움직입니다.
우리의 기능은 모든 충돌 후 소행성의 상태를 알아내는 것입니다. 두 개의 소행성이 만나면 작은 소행성이 폭발합니다. 둘 다 크기가 같으면 둘 다 폭발합니다. 같은 방향으로 움직이는 두 개의 소행성은 절대 만나지 않습니다.
예를 들어, 함수에 대한 입력이 -
인 경우입력
const arr = [1, 7, 3, 6, 5, 6];
출력
const output = 3;
출력 설명
인덱스 3의 왼쪽에 있는 숫자의 합(nums[3] =6)은 인덱스 3의 오른쪽에 있는 숫자의 합과 같습니다.
또한 3은 이것이 발생하는 첫 번째 인덱스입니다.
예시
다음은 코드입니다 -
const arr = [1, 7, 3, 6, 5, 6]; const medianIndex = (arr = []) => { let sum = arr.reduce((acc, num) => acc + num, 0) let currentSum = 0 for (let i = 0; i < arr.length; i++) { currentSum += (arr[i - 1] || 0) sum -= arr[i] if (currentSum === sum) { return i } } return -1 } console.log(medianIndex(arr));
출력
3