most
와 max
를 계속 업데이트시켜주면서 그 기간에 맞춰 period
까지 업데이트
Solution
import sys
from typing import List
def solution(X: int, visitors: List[int]):
# X일 동안의 누적 관광객 수
max_visitors = sum(visitors[:X])
most_visitor, period = max_visitors, 1
for i in range(X, len(visitors)):
# 누적 관광객 수 업데이트
max_visitors += visitors[i] - visitors[i - X]
if most_visitor < max_visitors:
most_visitor = max_visitors
period = 1
continue
# 유지한 기간 업데이트
if most_visitor == max_visitors:
period += 1
if most_visitor:
return [most_visitor, period]
return ["SAD"]
N, X = map(int, sys.stdin.readline().rstrip().split())
visitors = list(map(int, sys.stdin.readline().rstrip().split()))
print(*solution(X, visitors), sep='\n')
Reference
Leave a comment