Open devLupin opened 1 year ago
n
개를 입력받고, x
개의 구간마다 누적합을 구한다고 가정int n, x;
cin >> n >> x;
vector<int> v(n + 1);
vector<int> dp(n + 1);
// 수열 입력받고, 메모이제이션
for (int i = 1; i <= n; i++) {
cin >> v[i];
dp[i] = (i > 0) ? dp[i - 1] + v[i] : v[i];
}
// 누적합 구하기
for (int i = x; i <= n; i++)
int prefix_sum = dp[i] - dp[i - x];
prefix sum
n
개가 주어질 때, 해당 수열에서x
개마다의 합을 구하는 알고리즘예시
1, 2, 3, 4, 5
의 수열dp[i] - dp[i - x]
i
는 구하고자 하는 누적합의 마지막 위치x
는 누적합 개수