구간합구하기(백준 11659번)
누적합 문제이다.
원소에 직접 접근해서 합을 구하는것은 시간이 오래 걸린다.
그래서 구간별로 합을 구해서 배열로 만들어 줘야 한다.
구간의 값을 x랑 y로 받고 y구간 까지의 합과 x-1번째 까지의 합의 배열을 빼주면 구간의 합을 구할 수 있다.
#include <iostream>
using namespace std;
int arr[100001] = { 0, };
int main() {
ios_base::sync_with_stdio(NULL);
cin.tie(NULL);
cout.tie(NULL);
int n, m;
cin >> n >> m;
for (int i = 1; i <= n; i++) {
int num;
cin >> num;
if (i == 1) {
arr[i] = num;
}
else {
arr[i] = (num + arr[i - 1]);
}
}
while (m--) {
int x, y;
cin >> x >> y;
cout << arr[y] - arr[x - 1] << "\n";
}
}
Author And Source
이 문제에 관하여(구간합구하기(백준 11659번)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@jiho9702/구간합구하기백준-11659번저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)