본문 바로가기
Research/Coding Test

724. Find Pivot Index

by RIEM 2023. 3. 19.
728x90

https://leetcode.com/problems/find-pivot-index/?envType=study-plan&id=level-1

Intuition

Pivot Index는 해당 인덱스를 기점으로 좌/우 요소들의 합이 같아야 한다. 따라서 좌/우의 합을 score로 계산하여 비교하는 방식으로 문제를 풀 수 있을 것이라 생각했다.

처음에는 매 요소를 순차적으로 돌 때마다, 좌우의 총합을 매번 계산하여 비교하는 방식을 생각했으나, 이는 비효율적이라 생각.

Approach

순차적으로 반복문을 돌아야 한다면 왼쪽에서 오른쪽으로 갈 것이다. 그 말은 우측은 항상 총합이 적어질 것이고, 왼쪽은 반대로 더 커질 것이다. 따라서 오른쪽의 총합을 미리 구해두고, 감산한 수치를 왼쪽으로 옮겨주는 방식으로 해결하면 시간 복잡도를 낮출 수 있을 것이라 생각했다.

Code

/**
 * @param {number[]} nums
 * @return {number}
 */

var pivotIndex = function(nums) {
    let left = 0;
    let right = nums.reduce((partialSum, a) => partialSum + a, 0);

    for (let i = 0; i < nums.length; i++) {
        right -= nums[i];
        if(left == right) {
            return i
        }
        left += nums[i]
    }
  return -1
};
728x90

'Research > Coding Test' 카테고리의 다른 글

스택/큐_기능개발  (0) 2023.03.21
스택/큐_같은 숫자는 싫어  (0) 2023.03.21
20. Valid Parentheses  (0) 2023.03.21
13. Roman to Integer  (0) 2023.03.20
1. Two Sum  (0) 2023.03.19

댓글