728x90
https://www.acmicpc.net/problem/21921
슬라이딩 윈도우 기법을 사용하는 문제이다.
1. 0~x 까지의 합을 sum과 max값으로 넣는다.
2. 1~x+1 , 2~x+2 ... 의 합들을 비교해야하므로,
1~x+1 합 = sum - 0번째 값 + x+1번째 값
.
.
.
이렇게 계산한다 !
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class Main {
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 x = 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;
int count=1;
for (int i = 0; i < n; i++) {
sum += arr[i];
if (i == x - 1)
max = sum;
if (i > x - 1) {
sum -= arr[i - x];
if (max < sum) {
max = sum;
count = 1;
}
else if (max == sum) {
count++;
}
}
}
if (max == 0)
System.out.println("SAD");
else {
System.out.println(max+"\n"+count);
}
}
}
'Java' 카테고리의 다른 글
[백준 1389] 케빈 베이컨의 6단계 법칙 (JAVA) (1) | 2023.03.06 |
---|---|
[백준 25757] 임스와 함께하는 미니게임 (JAVA) (0) | 2023.03.01 |
[백준 23971] ZOAC4 (JAVA) (0) | 2023.02.28 |
[백준 20920] 영단어 암기는 괴로워 (JAVA) (0) | 2023.02.22 |
[백준 10825] 국영수 (JAVA) (0) | 2023.02.21 |