class Solution {
public:
int pivotIndex(vector<int>& nums) {
    int total = 0;
    for (int num : nums) {
        total += num;
    }
    
    int leftSum = 0;
    for (int i = 0; i < nums.size(); i++) {
        int rightSum = total - leftSum - nums[i];
        if (leftSum == rightSum) {
            return i;
        }
        leftSum += nums[i];
    }
    
    return -1;
}
};

 

rightSum 이 total - leftSum - nums[i]; 라는 사실이 중요하다

 

[1,7,3,6,5,6]

#1

leftSum = 0 ,  num[0] = 1, rightSum = total - leftSum - num[0] = num[1] + num[2] + num[3] + num[4] + num[5];

 

#2

[1]                               [7]                [3,6,5,6]

leftSum = 0 + num[0],  num[1] = 7, rightSum = total - leftSum  - num[1] = num[2] + num[3] + num[4] + num[5];

'알고리즘 > 리트코드' 카테고리의 다른 글

392. Is Subsequence  (0) 2023.03.14
1480. Running Sum of 1d Array  (0) 2023.03.08
409. Longest Palindrome  (0) 2023.02.28
231.Power of Two  (0) 2023.02.28
122. Best Time to Buy and Sell Stock II  (0) 2021.09.06

+ Recent posts