영원히 흘러가는 강

최대 매출 본문

알고리즘

최대 매출

double_R_one_G 2022. 12. 13. 21:52
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

'알고리즘' 카테고리의 다른 글

해쉬맵 이용한 아나그램  (0) 2022.12.20
학급회장  (0) 2022.12.14
java 삽입정렬  (0) 2021.02.04
java 선택정렬  (0) 2021.02.04
java 버블정렬  (0) 2021.02.04
Comments