알고리즘 문제 풀이: 자바/LeetCode

1732. Find the Highest Altitude

hueco 2025. 11. 1.

 

📌 문제 링크 :

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)이 감소했다.

 

문제를 읽었을 때 풀이법을 어렵지 않게 떠올릴 수 있다면 작성한 코드에서 불필요한 연산은 없는지 체크하고 리팩토링 하도록 의식적으로 연습해야겠다.

댓글