※ 글쓴이는 취미로 코딩을 익혀보는 사람이라 정확하지 않은 내용을 담고 있을 수 있다 ※
이번에 볼 문제는 백준 13229번 문제인 Selection Sum이다.
문제는 아래 링크를 확인하자.
https://www.acmicpc.net/problem/13229
13229번: Selection Sum
Suppose we have an array of integers such as 1, 2, 3, 4, 5, 6, 7, 8, 9, 10. It is easy to compute the sum of all its elements. We only need a loop! For example: int size = 10; int total = 0; for (int i = 0; i < size; i += 1) { total = total + v[i]; } If we
www.acmicpc.net
첫 항부터 i번째까지의 항의 합 psum[i]을 미리 전부 계산해두면 l번째 항부터 r번째 항까지의 합은 psum[r] - psum[l-1]로 계산할 수 있을 것이다.
위와 같이 부분합 배열을 만들어 문제를 해결하자.
아래는 제출한 소스코드이다.
#include <iostream>
using namespace std;
int arr[100000];
int main() {
ios::sync_with_stdio(0);
cin.tie(0);
int N; cin >> N >> arr[0];
for (int i = 1; i < N; i++) {
cin >> arr[i];
arr[i] += arr[i - 1];
}
int Q; cin >> Q;
while (Q--) {
int x, y; cin >> x >> y;
if (x) cout << arr[y] - arr[x - 1] << '\n';
else cout << arr[y] << '\n';
}
}
728x90
'BOJ' 카테고리의 다른 글
[BOJ 13230 // C++] Bits equalizer (0) | 2023.06.14 |
---|---|
[BOJ 11334 // C++] Coin Turning Game (0) | 2023.06.13 |
[BOJ 13237 // C++] Binary tree (0) | 2023.06.11 |
[BOJ 4158 // C++] CD (0) | 2023.06.10 |
[BOJ 13238 // C++] Bitcoin investment (1) | 2023.06.09 |