개발일기

[백준 11441] 합 구하기 본문

Study/알고리즘

[백준 11441] 합 구하기

김조성준 2023. 12. 22. 21:21

문제 설명 )

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