

-Code
import java.util.*;
import java.io.*;
public class BOJ2559 {
public static void main(String[] args) throws IOException {
BufferedReader br =
new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(br.readLine());
int n = Integer.parseInt(st.nextToken());
int k = Integer.parseInt(st.nextToken());
//누적합 배열 만들기
st = new StringTokenizer(br.readLine());
int[] sumArr = new int[n + 1];
int sum = 0;
for (int i = 1; i <= n; i++) {
sum += Integer.parseInt(st.nextToken());
sumArr[i] = sum;
}
// 가장 큰 수 구하기
int answer = Integer.MIN_VALUE;
for (int i = k; i <= n; i++) {
int nowSum = sumArr[i] - sumArr[i - k];
answer = Math.max(answer, nowSum);
}
// 출력
System.out.println(answer);
}
}
처음에 누적합 배열에 크기를 n으로 지정하고 했으나 이렇게하면 처음 값을 검사할때 문제가 생겼습니다. 그래서 배열의 크기를 1을 더 늘려서 선언하고 arr[k] - arr[i - k]로 한칸씩 이동하며 계산해서 통과했습니다.
'Beakjoon&프로그래머스 > Java' 카테고리의 다른 글
| [프로그래머스/Java] k진수에서 소수 개수 구하기 (0) | 2026.01.05 |
|---|---|
| [백준/Java] 15098번 No Duplicates (0) | 2026.01.05 |
| [백준/Java] 1600번 말이 되고픈 원숭이 (0) | 2026.01.05 |
| [백준/Java] 2206번 벽 부수고 이동하기 (0) | 2026.01.05 |
| [프로그래머스/Java] 가장 큰 수 (0) | 2026.01.04 |