반응형
1. 문제
- 고도 변화량을 담은 배열 gain이 주어질 때, 도달했던 고도 중 가장 높은 고도를 반환하라.
2. 해결
function largestAltitude(gain: number[]): number {
let max = 0;
let sum = 0;
for(const altitude of gain) {
sum += altitude;
max = Math.max(max, sum);
}
return max;
};
- prefix Sum을 이용해서 이동 구간마다 현재 고도를 sum에 저장한 뒤, max를 구한다.
- 주의 점은 변화한 고도가 음수만 존재하는 경우, 0에서 시작했기 때문에 최대 고도는 0이다.