백준 코딩테스트/실버
11659) 구간 합 구하기 4 (C++)
xortl98
2022. 5. 25. 11:08
728x90
출처
https://www.acmicpc.net/problem/11659
11659번: 구간 합 구하기 4
첫째 줄에 수의 개수 N과 합을 구해야 하는 횟수 M이 주어진다. 둘째 줄에는 N개의 수가 주어진다. 수는 1,000보다 작거나 같은 자연수이다. 셋째 줄부터 M개의 줄에는 합을 구해야 하는 구간 i와 j
www.acmicpc.net
내 풀이
#include<iostream>
#include<vector>
using namespace std;
int N = 0, M = 0;
int start_ = 0, end_ = 0;
int input;
int sum[100001];
int main()
{
ios::sync_with_stdio(false);
cin.tie(NULL);
cout.tie(NULL);
cin >> N >> M;
for (int i = 1; i <= N; i++)
{
cin >> input;
sum[i] = sum[i - 1] + input;
}
for (int i = 0; i < M; i++)
{
cin >> start_ >> end_;
cout << sum[end_] - sum[start_-1] << '\n';
}
}
해설
DP처럼 미리 입력받으면서 sum값을 구해주고 정답으로 sum(끝점 구간) - sum(처음 구간 -1)을 해준 값을 출력해 주었다.
느낀점
시간초과 때문에 고생했다.