이때까지 푼 문제에서 틀렸던 이유들 생각나는 거
구현 실수 빼고
한 번 틀렸었는데 바로 int를 long으로 고칠 수 있었다.
이번 문제는 한 5분만에 푼 듯.
long,max는 웬만하면 long자료형으로 두자.
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class Main {
static int pay[];
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 m = Integer.parseInt(st.nextToken());
pay = new int[n];
st = new StringTokenizer(br.readLine());
for (int i = 0; i < n; i++) {
pay[i] = Integer.parseInt(st.nextToken());
}
long sum = 0, max = 0;
for (int i = 0; i < m; i++) {
sum += pay[i];
}
max = Math.max(sum, max);
for (int i = m; i < n; i++) {
int j = i - m;
sum -= pay[j];
sum += pay[i];
max = Math.max(sum, max);
}
System.out.println(max);
}
}