숫자 배열 nums가 주어질 때 pivot index를 리턴하는 문제이다
pivot index란 nums배열의 특정한 한 인덱스 값으로 pivot index 왼쪽 요소들의 합과 pivot index 오른쪽 요소들의 합이 같을때의 인덱스 값을 pivot index라한다
Example을 보자
예를 들어 1번을 보면 nums=[1,7,3,6,5,6] 일 때
index 3을 기준으로 왼쪽의 합은 1+7+3 = 11이고
오른쪽의 합은 5+6=11로 같게 되므로 pivot index는 3이된다
만약 index 의 왼쪽 or 오른쪽에 요소가 없다면 합은 0으로 친다
const pivotIndex = function(nums) {
let right_sum = 0;
let left_sum = 0;
nums.forEach((num) => right_sum += num);
for(let i = 0; i < nums.length ; i++) {
right_sum -= nums[i]
if(right_sum === left_sum) return i;
left_sum += nums[i];
}
return -1
};
먼저 변수 두개를 0으로 초기화해주고
배열의 모든 요소의 값들을 더해서 right_sum으로 할당해주었다
nums for문을 돌면서 현재 nums[i]가 인덱스 일때 right_sum은 nums[i] 를 뺀 값이 된다
만약 if 문의 조건을 만족하면 그대로 i를 리턴하고
조건을 만족하지 못한다면 left_sum을 nums[i]만큼 증가시켜준다
for문이 끝나게 되면 pivot index가 존재하지 않는것이므로 -1을 리턴해주었다
submit을 해보니
정답이었다!