-
[Python] 백준 21921 블로그알고리즘/문제풀이 2021. 11. 27. 21:28728x90
1. 문제 링크
https://www.acmicpc.net/problem/21921
2. 문제 요약
X일 동안 가장 많이 들어온 방문자 수와 기간이 몇 개 있는가
3. 아이디어 정리
- 누적합을 먼저 구한다.
- 슬라이딩 윈도우로 특정 기간 동안 최대 값인 경우 방문자 수와 기간을 갱신한다.
4. 문제 풀이
4-1. 내 풀이
n, x = map(int, input().split()) # 블로그 일수, x일 동안 가장 많이 들어온 방문자 arr = list(map(int, input().split())) if max(arr) == 0: print("SAD") else: # prefix 만들기 prefix = [0] for i, a in enumerate(arr): prefix.append(prefix[i] + a) left = 0 right = x result = 0 count = 0 while right <= n: if right - left == x: if result < prefix[right] - prefix[left]: result = prefix[right] - prefix[left] count = 1 elif result == prefix[right] - prefix[left]: count += 1 left += 1 right += 1 print(result) print(count)
5. 결론
- 슬라이딩 윈도우로 해결
'알고리즘 > 문제풀이' 카테고리의 다른 글
[Python] programmers 입국심사 (0) 2021.12.04 [Python] programmers 교점에 별 만들기 (0) 2021.11.27 [Python] 백준 12865 평범한 배낭 (0) 2021.11.27 [Python] 백준 13975 파일 합치기 3 (0) 2021.11.26 [Python] 백준 4358 생태학 (0) 2021.11.26