[백준] 2559. 수열

원숭2·2022년 2월 12일
0

백준

목록 보기
38/54

문제

풀이

  1. 구간 합을 구하는 방식을 단순히 할 때마다 slice 해주면 time out남.
  2. 그래서 for문을 돌며 [0, 1, 2, 3] -> [1, 2, 3, 4]의 합을 구할 때, 기존 [0, 1, 2, 3]에 [0]을 빼주고 [4]를 더해주는 방식으로 계산함.
  3. 각 구간 합을 res배열에 추가 후, max값 print함.

코드

def solution() :
    n, k = map(int ,input().split())
    temp = list(map(int, input().split()))
    
    tmp = sum(temp[:k])
    prefix = [tmp]
    
    for i in range(n-k) :
        tmp = tmp - temp[i] + temp[i+k]
        prefix.append(tmp)
    
    print(max(prefix))
    
solution()

0개의 댓글