[LeetCode] Find Pivot Index

준규·2022년 9월 25일
0

숫자 배열 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을 해보니

정답이었다!

profile
안녕하세요 :)

0개의 댓글