[C++]구간 합 구하기 4 - 백준11659

문제



풀이

문제 해석을 하자면,

  • 주어진 구간의 합을 구하는 문제


풀이

  • 문제 제한을 보면 시간제한을 조심해야 하므로 DP로 풀이
  • 규칙이 쉬워서 bottom-top으로 쉽게 풀 수 있다.
  • 방법은 구간합을 전부 구해놓고 활용 하기만 하면 된다.
  • 입출력이 많으므로 시간초과 뜰 수 있으니 꼭 ios::… cout.tie(0)까지 선언



코드

#include<iostream>

using namespace std;

int N, M;

long long dpArr[100005];

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

	int inNum = 0;
	cin >> N >> M;
	cin >> inNum;
	dpArr[1] = inNum;
	for (int i = 2; i <= N; i++) {
		cin >> inNum;
		dpArr[i] = dpArr[i - 1] + inNum;
	}

	int inNum1 = 0; int inNum2 = 0;
	for (int i = 0; i < M; i++) {
		cin >> inNum1 >> inNum2;
		cout << dpArr[inNum2] - dpArr[inNum1 - 1]<<'\n';
	}

	return 0;
}



느낀점

생략

댓글남기기