반응형
https://www.acmicpc.net/problem/11659
- 문제
i번째 부터 j번째 수까지 합을 구하는 문제다.
- 해설
i부터 j까지 합을 계속 반복문으로 돌리면 시간초과가 나는 문제다.
0 1 2 3 4 5 6 7 8 9 라는 수가 있으면
4부터 7까지의 합은
7까지의 합 - 3까지의 합이 된다는 것을 이용해서 풀면 된다.
- 풀이
#include <iostream>
#include <vector>
using namespace std;
int main()
{
ios_base::sync_with_stdio(false);
cin.tie(NULL);
cout.tie(NULL);
int N, M, i, j, temp, answer;
cin >> N >> M;
vector<int> v(N + 1);
v[0] = 0;
for (int l = 1; l <= N; l++)
{
cin >> temp;
v[l] = v[l - 1] + temp;
}
for (int l = 0; l < M; l++)
{
cin >> i >> j;
cout << v[j] - v[i - 1] << '\n';
}
return 0;
}
- 새롭게 알게 된 점
반응형
'Algorithm > Baekjoon BOJ' 카테고리의 다른 글
[백준][C++] 16139: 인간-컴퓨터 상호작용 (0) | 2022.11.11 |
---|---|
[백준][C++] 2559: 수열 (0) | 2022.11.10 |
[백준][C++] 2580: 스도쿠 (2) | 2022.11.08 |
[백준][C++] 1912: 연속합 (0) | 2022.11.04 |
[백준][C++] 9461: 파도반 수열 (0) | 2022.11.04 |