Categories
Algorithm🧩
백준 📝
BookReview📕
CleanCode✨
Network 📨
Database 🗄
DevOps☁️
에러 일기📕
Etc💬
Fishy Fish 🎣
Spring🌱
[백준] 21921 블로그
백준 21921 블로그
문제
찬솔이는 블로그를 시작한 지 벌써 N일이 지났다.
요즘 바빠서 관리를 못 했다가 방문 기록을 봤더니 벌써 누적 방문 수가 6만을 넘었다.
찬솔이는 X일 동안 가장 많이 들어온 방문자 수와 그 기간들을 알고 싶다.
찬솔이를 대신해서 X일 동안 가장 많이 들어온 방문자 수와 기간이 몇 개 있는지 구해주자.
입력
- 첫 번째 줄: N, X
- 두 번째 줄 ~: 1~N일동안의 방문자 수
출력
X일 동안 가장 많이 들어온 방문자 수
해결 방식
슬라이딩 윈도우
- 처음 보는 알고리즘이다..
- 고정 사이즈의 윈도우가 이동하면서 윈도우 내에 있는 데이터를 이용해 문제를 풀이하는 알고리즘
- 왼쪽부터 시작해 한 칸씩 오른쪽으로 이동
코드
n, x = map(int, input().split())
visit = list(map(int, input().split()))
if max(visit) == 0:
print("SAD")
else:
max_visit = sum(visit[0:x])
value = max_visit
count = 1
for i in range(x, n):
value -= visit[i-x]
value += visit[i]
if value > max_visit:
max_visit = value
count = 1
elif value == max_visit:
count += 1
print(max_visit)
print(count)