public int largestAltitude(int[] gain) {
int current = 0;
int highest = 0;
for (int g : gain) {
current += g;
highest = Math.max(highest, current);
}
return highest;
}
public int pivotIndex(int[] nums) {
int[] sumLeft = new int[nums.length];
int[] sumRight = new int[nums.length];
sumLeft[0] = 0;
for(int i = 1; i < nums.length; i++){
sumRight[0] += nums[i];
}
for(int i = 0; i < nums.length; i++){
if(i != 0){
// nums만 더하고 빼는 것이 아니라 sumLeft, sumRight 이전 값 가져와야함.
sumLeft[i] = sumLeft[i - 1] + nums[i - 1];
sumRight[i] = sumRight[i - 1] - nums[i];
}
if(sumLeft[i] == sumRight[i]) return i;
}
return -1;
}
- 배열 없이 변수로도 가능
rightSum = total - leftSum - nums[i] 활용
public int pivotIndex(int[] nums) {
int total = 0, leftSum = 0;
for (int num : nums) total += num;
for (int i = 0; i < nums.length; i++) {
if (leftSum == total - leftSum - nums[i]) return i;
leftSum += nums[i];
}
return -1;
}
GitHub Comments