이 문제는 위의 회전초밥 문제의 쉬운 버전같다.
원형탁자에서 k개를 고르는 문제이므로, 배열의 마지막이 끝난 게 아니고 앞의 배열로 연결해서 연속되게 설정해줘야 하는 문제다.
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class Main {
static int arr[];
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());
arr = new int[n + k - 1];
st = new StringTokenizer(br.readLine());
for (int i = 0; i < n; i++) {
arr[i] = Integer.parseInt(st.nextToken());
}
for (int i = 0; i < k - 1; i++) {
arr[n + i] = arr[i];
}
long sum = 0, max = 0;
for (int i = 0; i < k; i++) {
sum += arr[i];
}
max = Math.max(sum, max);
for (int i = k; i < arr.length; i++) {
int j = i - k;
sum -= arr[j];
sum += arr[i];
max = Math.max(sum, max);
}
System.out.println(max);
}
}