import java.util.*;
class Main {
public int solution(int[] input, int N) {
int answer = 0;
int index = 0;
int max = Integer.MIN_VALUE;
while (index <= input.length - N) {
int sum = 0;
for (int i = 0; i < N; i++) {
sum += input[index + i];
}
max = Math.max(max, sum);
index++;
}
answer = max;
return answer;
}
public static void main(String[] args) {
Main T = new Main();
Scanner kb = new Scanner(System.in);
int M = kb.nextInt();
int N = kb.nextInt();
int[] input = new int[M];
for (int i = 0; i < M; i++)
input[i] = kb.nextInt();
System.out.print(T.solution(input, N));
kb.close();
}
}
4번째 테스트 케이스 시간 초과
import java.util.*;
class Main {
public int solution(int[] input, int N) {
int answer = 0;
int index = 0;
int sum = 0;
for (int i = 0; i < N; i++) {
sum += input[i];
}
int max = sum;
while (index < input.length - N) {
sum = sum - input[index] + input[index + N];
max = Math.max(max, sum);
index++;
}
answer = max;
return answer;
}
public static void main(String[] args) {
Main T = new Main();
Scanner kb = new Scanner(System.in);
int M = kb.nextInt();
int N = kb.nextInt();
int[] input = new int[M];
for (int i = 0; i < M; i++)
input[i] = kb.nextInt();
System.out.print(T.solution(input, N));
kb.close();
}
}
'알고리즘 > JAVA' 카테고리의 다른 글
5. 연속된 자연수의 합 (0) | 2021.09.16 |
---|---|
4. 연속 부분수열 (0) | 2021.09.16 |
2. 공통원소 구하기 (0) | 2021.09.15 |
12. 멘토링 (0) | 2021.09.14 |
11. 임시반장 정하기 (0) | 2021.09.11 |
댓글