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번째 전의 원소는 빼주는 방법이다.
반응형