백준
[백준BaekJoon]11659: 구간 합 구하기 4
P1su
2024. 7. 17. 20:51
문제
https://www.acmicpc.net/problem/11659
풀이
누적 합을 이용하면 쉽게 풀 수 있다.
i번째까지의 모든 수의 합을 담는 배열을 만든다.
이후 구간 합을 구하면 되는데, 만약 구해야하는 구간이 3부터 5라면,
1번 구간부터 5번 구간까지의 합을 담고 있는 arr[5] 에서 1번 구간부터 2번 구간까지의 합을 담고 있는 arr[2] 의 값을 빼주면 된다.
#include <bits/stdc++.h>
using namespace std;
int arr[100001] = { 0, };
int main() {
ios::sync_with_stdio(0);
cin.tie(0);
int N, M;
cin >> N >> M;
for (int i = 1; i <= N; i++) {
cin >> arr[i];
arr[i] = arr[i] + arr[i - 1];
}
while (M--) {
int i, j;
cin >> i >> j;
cout << arr[j] - arr[i - 1] << '\n';
}
}
시간초과가 났었는데, endl 때문.... \n을 써 버릇 하자.
728x90