개발일기
[백준 11441] 합 구하기 본문
문제 설명 )
N개의 수 A1, A2, ..., AN이 입력으로 주어지고, 총 M개의 구간 i, j가 주어졌을 때, i번째 수부터 j번째 수까지 합을 구하는 프로그램을 작성하는 문제입니다.
문제 해결 방법 )
N개의 입력이 주어질 때, 주어지는 값들을 전부 다 합하고, 합할 때마다 선언한 Vector에 저장합니다.
그리고 저장된 Vector에서 v[j]-v[i-1]을 해주면 원하는 누적합 값이 출력됩니다.
소스 코드 )
#include <iostream>
#include <vector>
using namespace std;
int main() {
ios_base::sync_with_stdio(false);
cin.tie(0);
cout.tie(0);
int n;
cin >> n;
int sum = 0;
vector<int>v(n+1);
v[0]=0;
for (int i = 0; i < n; i++) {
int num;
cin >> num;
sum += num;
v[i+1] = sum;
}
int m;
cin >> m;
while (m--) {
int a, b;
cin >> a >> b;
cout << v[b] - v[a-1] << "\n";
}
return 0;
}
'Study > 알고리즘' 카테고리의 다른 글
[백준 15650] N과 M(2) (0) | 2023.08.30 |
---|