최초 풀이(5ms)
class Solution {
public int pivotIndex(int[] nums) {
int result = -1;
int sum = Arrays.stream(nums).sum();
int presum = 0;
for(int i = 0; i < nums.length; i++) {
sum -= nums[i];
if (presum == sum) {
result = i;
break;
}
presum += nums[i];
}
return result;
}
}
참고 후 최종 풀이(1ms)
스트림을 사용하면 코드가 간결해지고, 가독성이 높아지는 건 맞는데 ms 단위로 시간을 줄이고자 할 때는 적절하지 않은 듯..
presum * 2 가 전체 합에서 nums[i]를 뺀 값, presum += nums[i++]로 반복 표현하기 등을 배움..세상 똑똑이들 참 많다 많어..
class Solution {
public int pivotIndex(int[] nums) {
int result = -1;
int sum = 0;
for(int num: nums) {
sum += num;
}
int presum = 0;
for(int i = 0; i < nums.length; presum += nums[i++]) {
if (presum * 2 == sum - nums[i]) {
result = i;
break;
}
}
return result;
}
}
'코딩테스트' 카테고리의 다른 글
[leetcode] 872. Left-Similar Leafs (0) | 2024.06.11 |
---|---|
[leetcode] 443. String Compression (0) | 2024.06.11 |
[leetcode] 238. Product of Array Except self (1) | 2024.06.09 |
[leetcode] 151. Reverse Words in String (0) | 2024.06.07 |
[leetcode] 345. Reverse Vowels (1) | 2024.06.07 |