📌 문제 링크 :
https://leetcode.com/problems/find-the-highest-altitude/
✅ 내 풀이(Success) :
class Solution {
public int largestAltitude(int[] gain) {
int n = gain.length;
int[] prefix = new int[n+1];
int highest = prefix[0];
for (int i = 0; i < n; i++) {
prefix[i+1] = gain[i] + prefix[i];
highest = Math.max(highest, prefix[i+1]);
}
return highest;
}
}
🧐 리뷰 :
기초적인 누적합 문제이다. 처음 문제를 풀었을 때는 for 반복문으로 누적합을 계산하여 배열에 초기화하고, 반복문이 종료된 다음에 스트림 API로 배열에서 최댓값을 찾아서 반환하도록 풀었다. 이 풀이로 문제는 풀었지만, 실행 시간이 빠르지 않아서(3ms) 최댓값을 반복문 안에서 갱신하도록 코드를 수정하니 실행시간(0ms)이 감소했다.
문제를 읽었을 때 풀이법을 어렵지 않게 떠올릴 수 있다면 작성한 코드에서 불필요한 연산은 없는지 체크하고 리팩토링 하도록 의식적으로 연습해야겠다.
'알고리즘 문제 풀이: 자바 > LeetCode' 카테고리의 다른 글
| 151. Reverse Words in a String (0) | 2025.11.03 |
|---|---|
| 1207. Unique Number of Occurrences (0) | 2025.11.02 |
| 2215. Find the Difference of Two Arrays (0) | 2025.10.31 |
| 643. Maximum Average Subarray I (0) | 2025.10.30 |
| 1071. Greatest Common Divisor of Strings (0) | 2025.10.29 |
댓글