코딩테스트 문제풀이/inflearn

[인프런] Node.js / 섹션5-효율성(슬라이싱 윈도우 알고리즘) / 5. 최대 매출

sangchu 2023. 2. 8. 16:07

 N일 동안의 매출기록을 주고 연속 된 K일 동안의 최대 매출액이 얼마인지 구하기

만약 N=10이고 10일 간의 매출기록이 아래와 같다.

이때 K=3이면 12 15 11 20 25 10 20 19 13 15 연속된 3일간의 최대 매출액은 11+20+25=56만원이다.

 

풀이

function solution(k, arr) {
  let sum = 0;
  for (let i = 0; i < k; i++) sum += arr[i];
  let max = sum;

  for (let i = k; i < arr.length; i++) {
    sum += arr[i] - arr[i - k];
    if (sum > max) max = sum;
  }
  return max;
}

let a = [12, 15, 11, 20, 25, 10, 20, 19, 13, 15];
console.log(solution(3, a));