문제 설명

민철이는 매일 공부하고 공부한 시간을 기록해 두었습니다. 어느 날 민철이는 연속한 n일 동안 공부한 시간을 모두 합했을 때, 가장 큰 값은 얼마인지 궁금해졌습니다.

예를 들어 민철이가 10일 동안 기록한 공부 시간이 다음과 같고, n = 4일 때

pcce모의고사 9.png

4일동안 공부한 시간을 모두 더한 값은 다음과 같습니다.

  • 1일 ~ 4일째: 4 + 6 + 3 + 1 = 14
  • 2일 ~ 5일째: 6 + 3 + 1 + 0 = 10
  • 3일 ~ 6일째: 3 + 1 + 0 + 5 = 9
  • 4일 ~ 7일째: 1 + 0 + 5 + 9 = 15
  • 5일 ~ 8일째: 0 + 5 + 9 + 0 = 14
  • 6일 ~ 9일째: 5 + 9 + 0 + 1 = 15
  • 7일 ~ 10일째: 9 + 0 + 1 + 3 = 13

따라서 연속한 4일 동안 공부한 시간을 모두 합했을 때, 가장 큰 값은 15입니다.

민철의 공부 시간 기록이 담긴 정수 리스트 times와 민철이가 궁금해하는 날짜 수 n이 주어질 때 n일 연속으로 가장 오래 공부한 시간을 return하도록 solution 함수를 완성해주세요.

연속한 n일 동안 공부한 시간을 모두 합했을 때, 가장 큰 값을 구하는 과정은 다음과 같습니다.

1. 공부한 시간 합의 최댓값을 저장할 정수 max_time을 만들고 0을 저장합니다.
2. i를 0부터 times의 길이 - n 까지 1씩 증가시키며 아래 과정을 반복합니다.
    2-1. times[i]부터 n일동안 공부한 시간 합을 저장할 정수 val_sum을 만들고 0을 저장합니다.
    2-2. j를 i부터 i + n - 1 까지 1씩 증가시키며 아래 과정을 반복합니다.
        2-2-1. val_sum에 times[j]를 더합니다.
    2-3. 만약 max_time보다 val_sum이 더 크다면 max_time에 val_sum의 값을 저장합니다.
3. max_time을 return합니다.
  • 위의 의사코드와 작동방식이 다른 코드를 작성해도 상관없습니다.

제한 사항

  • 10 ≤ times의 길이 ≤ 1,000
  • 0 ≤ times의 원소 ≤ 24
  • 1 ≤ ntimes의 길이

입출력 예

times n result
[4, 6, 3, 1, 0, 5, 9, 0, 1, 3] 4 15

입출력 예 설명

입출력 예 #1

  • 본문과 동일합니다.
실행 결과 실행 중지