// 투포인터는 가변적 길이, 슬라이딩 윈도우는 고정적 길이
import java.util.*;
class Main {
public int solution(int n, int m, int[] arr) {
int answer = 0;
int sum = 0;
// 첫 3일치를 더하고 answer에 저장
for(int i = 0; i < m; i++) {
sum += arr[i];
}
answer = sum;
// 4일치부터 시작하는데 3일의 고정된 크기로 오른쪽으로 1칸씩 이동
for(int i = m; i < n; i++) {
sum += arr[i] - (arr[i-m]);
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 m = kb.nextInt();
int[] arr = new int[n];
for(int i = 0; i < n; i++) {
arr[i] = kb.nextInt();
}
System.out.print(T.solution(n, m, arr));
}
}
import java.util.*;
class Main {
public int solution(int n, int m, int[] arr) {
int answer = 0;
int sum = 0;
for(int i = 0; i < m; i++) {
sum += arr[i];
}
answer = sum;
for(int i = m; i < n; i++) {
sum += arr[i] - (arr[i-m]);
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 m = kb.nextInt();
int[] arr = new int[n];
for(int i = 0; i < n; i++) {
arr[i] = kb.nextInt();
}
System.out.print(T.solution(n, m, arr));
}
}
'코딩테스트 > 기초' 카테고리의 다른 글
29. 연속된 자연수의 합 (0) | 2024.12.21 |
---|---|
28. 연속 부분수열 (1) | 2024.12.20 |
26. 공통원소 구하기 (0) | 2024.12.15 |
24. 멘토링 (1) | 2024.12.15 |
23. 임시반장 정하기 (0) | 2024.12.14 |