
문제해석
정수 요소를 갖는 nums 배열이 주어졌을 때 pivot index를 계산해서 반환하기
pivot index는 pivot기준 왼쪽의 합과 오른쪽의 합이 같은 위치인 경우
만약 pivot이 0이면 왼쪽 배열의 합은 0임
이러한 pivot index 중 가장 왼쪽에 위치한 pivot index를 찾아서 반환
답 예
public int pivotIndex2(int[] nums) {
int length = nums.length;
int[] leftSum = new int[length];
int[] rightSum = new int[length];
for (int i = 1; i < nums.length; i++) {
// pivot 기준 왼쪽 배열의 총합을 기록
leftSum[i] = leftSum[i - 1] + nums[i - 1];
// pivot 기준 오른쪽 배열의 총합을 기록
rightSum[length - 1 - i] = rightSum[length - i] + nums[length - i];
}
for (int pivot = 0; pivot < nums.length; pivot++) {
// 각 pivot 위치별로 총합이 동일 한 index를 찾기
if (leftSum[pivot] == rightSum[pivot]) {
return pivot;
}
}
// 못찾은 경우 -1 반환
return -1;
}'Algorithm' 카테고리의 다른 글
| [leetcode 75] 392. Is Subsequence (0) | 2023.02.17 |
|---|---|
| [leetcode 75] 205. Isomorphic Strings (1) | 2023.02.17 |
| [leetcode 75] 1480. Running Sum of 1d Array (0) | 2023.02.15 |
| [leetcode] 1672. Richest Customer Wealth (0) | 2023.02.15 |
| [leetcode] 1342. Number of Steps to Reduce a Number to Zero (0) | 2023.02.15 |