문제

구간 합 구하기4 백준 11659

"맞았습니다" 코드

#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

+ Recent posts