728x90
반응형
https://www.acmicpc.net/problem/21921
앞에서부터 x일씩 묶어서 최대방문자 수를 비교한다.
최대방문자를 갱신했다면 max값을 바꾸고 count를1로 만든다.
최대방문자수와 같다면 count만 1 증가시킨다.
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class P21921 {
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;
for (int i = 0; i < x; i++) {
sum += arr[i];
}
int sum_max = sum;
int count = 1;
for (int i = 0; i < n - x; i++) {
sum -= arr[i];
sum += arr[i + x];
if (sum > sum_max) {
sum_max = sum;
count = 1;
} else if (sum == sum_max) {
count++;
}
}
if (sum_max == 0) {
System.out.println("SAD");
} else {
System.out.println(sum_max);
System.out.println(count);
}
}
}
방문자수를 비교하기 위해 for문을 돌릴 때,
맨 앞이나 맨 끝에 위치한 날을 빠뜨리지 않게 주의하자.
(내 코드에서는 sum_max와 count를 초기화하면서 맨 앞에 위치한 x일만큼의 값을 미리 넣어두었다)
728x90
반응형
'코딩 > 백준-자바' 카테고리의 다른 글
[자바] 백준 19941번: 햄버거 분배 (0) | 2023.03.03 |
---|---|
[자바] 백준 1515번: 수 이어 쓰기 (0) | 2023.03.02 |
[자바] 백준 2512번: 예산 (0) | 2023.02.28 |
[자바] 백준 20920번: 영단어 암기는 괴로워 (0) | 2023.02.27 |
[자바] 백준 2164번: 카드2 (0) | 2023.02.27 |
댓글