영원히 흘러가는 강
최대 매출 본문
728x90
문제는 위반 될수 있으니 패스!
배열 주어지고 3개의 값을 더했을때 최댓값을 구하기
ex)
arr= [10,7,3,5,4] answer =20
슬라이딩 윈도우 문제라고 한다
function solution(k, arr) {
let anwser = 0,
sum = 0;
for (let i = 0; i < k; i++) sum += arr[i];
anwser = sum;
for (let j = k; j < arr.length; j++) {
sum += arr[j] - arr[j - k];
anwser = Math.max(anwser, sum);
}
return anwser;
}
let a = [12, 15, 11, 20, 25, 10, 20, 19, 13, 15];
console.log(solution(3, a));
더해야하는 갯수와 배열을 입력 받았고,
answer , sum 초기화
처음 3개의 값을 sum에 저장한 후
3개뒤 즉 인덱스 3번부터 진행하여 sum에 누적
j가 증가하면서 j를 더하고 j-k번째의 인덱스값 빼주는 형태
728x90
Comments