
문제를 보니 연속된 수열 k 개를 선택 시 가장 큰 값 을 구하는 문제이다
연속된 수열 k 개 고정된 값
슬라이딩 윈도우 문제인 것이다
for(int i=0; i<k; i++){
sum += arr[i]
}
for(int i=1; i<=n-k; i++){
sum = sum - arr[i-1] + arr[i+k-1];
if(max < sum){
max = sum;
}
}
public static void main(String[] args) throws IOException{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st;
st = new StringTokenizer(br.readLine());
int n = Integer.parseInt(st.nextToken());
int k = Integer.parseInt(st.nextToken());
int[] arr = new int[n];
st = new StringTokenizer(br.readLine());
for(int i=0; i<n; i++){
arr[i] = Integer.parseInt(st.nextToken());
}
int sum = 0;
int max = 0;
for(int i=0; i<k; i++){
sum += arr[i];
}
max = sum;
for(int i=1; i<=n-k; i++){
sum = sum - arr[i-1] + arr[i+k-1];
if(max < sum){
max = sum;
}
}
System.out.println(max);
}
다시 한번 고정된 값을 구한다 -> 슬라이딩 윈도우
고정 안된 값을 구한다 -> 투포인터