문제
"맞았습니다" 코드
#include <bits/stdc++.h>
using namespace std;
int n, m; // 수의 개수 n, 합을 구해야 하는 횟수 m
int A[100005];
long long D[100005];
int i, j;
int main(void) {
ios::sync_with_stdio(0);
cin.tie(0);
cin >> n >> m;
cin >> A[1];
D[1] = A[1];
for(int i = 2; i<= n; i++){
cin >> A[i];
D[i] = D[i-1] + A[i];
}
while(m--){
cin >> i >> j;
cout << D[j]-D[i-1] << '\n';
}
return 0;
}
리뷰
입력받을 때 마다 누적 합을 저장하는 배열 D를 만든다.
만약 3 에서 5의 구간합을 계산하려면 ,
15 의 합을 저장한 D[5] 에서 12의 합을 저장한 D[2]를 빼면 된다.
728x90
'알고리즘 > 백준' 카테고리의 다른 글
피보나치 수2 백준 2748 c++ (0) | 2022.02.04 |
---|---|
카드 백준 11652 c++ (0) | 2022.02.04 |
1,2,3 더하기 백준 9095번 c++ (0) | 2021.12.22 |
시리얼 번호 백준 1431 c++ (0) | 2021.12.21 |
국영수 백준 10825 c++ (0) | 2021.12.21 |