[2559번] 수열

HYEOB KIM·2022년 5월 24일
0

algorithm

목록 보기
14/44

백준 2559번 수열

코드 풀이

  • 입력 변수에 대한 누적 합을 구합니다.
인덱스012345678910
입력 변수(num)03-2-4-9037138-3
누적 합(prefix_sum)031-3-12-12-9-2111916
  • 어떤 구간의 합을 구하고 싶다면, 누적 합의 값을 빼서 구할 수 있습니다.
    예를 들어, num[1] ~ num[3] 구간의 합을 구하고 싶다면,
    prefix_sum[3] - prefix_sum[0]을 통해 구할 수 있습니다.
import sys
n, k = map(int, sys.stdin.readline().split(' '))

num = [0] + list(map(int, sys.stdin.readline().split(' ')))
prefix_sum = [0] * (n + 1)   # 누적 합

# 입력 변수에 대한 누적 합 구하기
for i in range(1, n+1):
    prefix_sum[i] = prefix_sum[i-1] + num[i]

# 입력 변수의 k값에 따라 구간 합 구하기
result = []
for i in range(k, n+1):
    hap = prefix_sum[i] - prefix_sum[i-k]
    result.append(hap)

# result에 저장된 전체 구간 합의 값 중 최대값
print(max(result))
profile
Devops Engineer

0개의 댓글