728x90
https://www.acmicpc.net/problem/21921
메모리: 35,768 KB , 시간: 352 ms
사용 알고리즘: 슬라이딩 윈도우
728x90
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class Main {
public static void main(String[] args) throws Exception{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st;
st = new StringTokenizer(br.readLine());
int N = Integer.parseInt(st.nextToken());
int X = Integer.parseInt(st.nextToken());
int[] visiter = new int[N];
st = new StringTokenizer(br.readLine());
for (int i = 0; i < N; i++) {
visiter[i] = Integer.parseInt(st.nextToken());
}
// 0 ~ X - 1까지의 합 구하기
int sum = 0;
for (int i = 0; i < X; i++) {
sum += visiter[i];
}
int maxSum = sum;
int count = 1;
// 슬라이딩 윈도우
for (int i = X; i < N; i++) {
sum += visiter[i];
sum -= visiter[i - X];
if(maxSum < sum) {
maxSum = sum;
count = 1;
}
else if(maxSum == sum) {
count++;
}
}
// 최대 방문자 수가 0명인 경우
if(maxSum == 0) {
System.out.println("SAD");
}
else {
System.out.println(maxSum + "\n" + count);
}
}
}
728x90
'Problem Solving > BOJ' 카테고리의 다른 글
[백준, BOJ 1515] 수 이어 쓰기 (java) (0) | 2024.11.10 |
---|---|
[백준, BOJ 2776] 암기왕 (java) (0) | 2024.11.08 |
[백준, BOJ 15655] N과 M (6) (java) (0) | 2024.11.07 |
[백준, BOJ 4963] 섬의 개수 (java) (0) | 2024.11.06 |
[백준, BOJ 20920] 영단어 암기는 괴로워 (java) (0) | 2024.11.04 |