[BOJ] 11659번 구간 합 구하기 4 (C++) [Do it!]

천호영·2024년 1월 17일
0

알고리즘

목록 보기
92/100
post-thumbnail

문제

https://www.acmicpc.net/problem/11659

풀이

내가 작성한 풀이는 다음과 같다.

#include<iostream>
#include<vector>

using namespace std;

int main() {
	ios::sync_with_stdio(false);
	cin.tie(NULL);
	cout.tie(NULL);


	int N, M;
	cin >> N >> M;

	vector<int> acc_sum(N+1,0); // 누적합
	cin >> acc_sum[1];
	for (int i = 2; i < N+1; i++) {
		int num;
		cin >> num;
		acc_sum[i] = acc_sum[i - 1] + num;
	}

	//for (int i = 0; i < N; i++) {
	//	cout << acc_sum[i] << " ";
	//}

	for (int i = 0; i < M; i++) {
		int start, end;
		cin >> start >> end;
		cout << acc_sum[end] - acc_sum[start-1] << "\n";
	}
	

}

책에서의 풀이는 다음과 같다.

#include<iostream>
using namespace std;

int main() {
	ios::sync_with_stdio(false);
	cin.tie(NULL);
	cout.tie(NULL);

	int suNo, quizNo;
	cin >> suNo >> quizNo;
	int S[100001] = {};

	for (int i = 1; i <= suNo; i++) {
		int temp;
		cin >> temp;
		S[i] = S[i - 1] + temp; // 구간 합 구하기
	}
	for (int i = 0; i < quizNo; i++) {
		int start, end;
		cin >> start >> end;
		cout << S[end] - S[start - 1] << "n";
	}

}
profile
성장!

0개의 댓글