문제
찬솔이는 블로그를 시작한 지 벌써 일이 지났다.
요즘 바빠서 관리를 못 했다가 방문 기록을 봤더니 벌써 누적 방문 수가 6만을 넘었다.
찬솔이는 일 동안 가장 많이 들어온 방문자 수와 그 기간들을 알고 싶다.
찬솔이를 대신해서 일 동안 가장 많이 들어온 방문자 수와 기간이 몇 개 있는지 구해주자.
입력
첫째 줄에 블로그를 시작하고 지난 일수 와 가 공백으로 구분되어 주어진다.
둘째 줄에는 블로그 시작 일차부터 일차까지 하루 방문자 수가 공백으로 구분되어 주어진다.
출력
첫째 줄에 일 동안 가장 많이 들어온 방문자 수를 출력한다. 만약 최대 방문자 수가 0명이라면 SAD를 출력한다.
만약 최대 방문자 수가 0명이 아닌 경우 둘째 줄에 기간이 몇 개 있는지 출력한다.
제한
- 방문자 수
예제 입력 1
5 2
1 4 2 5 1
예제 출력 1
7
1
예제 입력 2
7 5
1 1 1 1 1 5 1
예제 출력 2
9
2
예제 입력 3
5 3
0 0 0 0 0
예제 출력 3
S
복기
1. 첫 X일을 먼저 계산을 해주면 loop를 한번더 안 돌려도 된다.
2. max_visit가 갱신되면 max_cnt도 1로 갱신해줘야 한다.
솔루션
N, X = map(int, input().split())
visit = list(map(int, input().split()))
# 첫 X일 합 계산
max_visit = sum(visit[:X])
max_cnt = 1 if max_visit >0 else 0
curr_sum = max_visit
for i in range(1, N - X + 1):
curr_sum = curr_sum - visit[i - 1] + visit[i + X - 1]
if curr_sum > max_visit:
max_visit = curr_sum
max_cnt = 1
elif curr_sum == max_visit:
max_cnt += 1
if max_visit>0:
print(max_visit)
print(max_cnt)
else:
print('SAD')
'Dev > Algorithm' 카테고리의 다른 글
[백준] #31091 거짓말 - 파이썬 (3) | 2025.07.31 |
---|---|
[백준] #11058 크리보드 - 파이썬 (2) | 2025.07.23 |
[백준] #10655 마라톤 1 - 파이썬 (1) | 2025.07.14 |
[백준] #14503 로봇 청소기 - 파이썬 (0) | 2025.06.18 |
[백준] #1992 쿼드트리 - 파이썬 (0) | 2025.06.11 |
댓글