ALGORITHM

[JAVA] 알고리즘 : Sliding window - 최대 매출

연듀 2022. 6. 21. 11:29
import java.util.*;

class Main {
    public int solution(int n, int k, int[] arr){
        int answer, sum=0;
        for(int i=0; i<k; i++) sum +=arr[i];
        answer = sum;

        for(int i=k; i<n; i++){
            sum += (arr[i]-arr[i-k]);
            answer = Math.max(answer, sum);
        }
        return answer;
    }

    public static void main(String[] args){
        Main T = new Main();
        Scanner kb = new Scanner(System.in);
        int n=kb.nextInt();
        int k=kb.nextInt();
        int[] arr=new int[n];

        for(int i=0; i<n; i++){
            arr[i]=kb.nextInt();
        }

        System.out.print(T.solution(n,k,arr));
    }
}

 

sliding window

말그대로 배열안에서 연속된 k개의 원소의 합을 구할 때 한칸씩 밀고가며 

한칸씩 증가시킨 인덱스의 원소는 더하고, k번째 전의 원소는 빼주는 방법이다.