cost 제한에 맞춰

score의 최대값을 구하는 문제입니다. 

그 최대 score출력 


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


문제 입니다. 



제가 짠 코드 입니다. 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
#include <iostream>
#include <algorithm>
using namespace std;
 
//예상 소모 시간 
int arr[100];
//예상 획득 점수  
int brr[100];
 
int N,costLimit;
 
 //sumtime -- 사용한 시간
int Search(int index,int sumTime) {
 
    //이 과목 선택시 시간이 초과하면
    if (costLimit < sumTime + arr[index] || index >= N) {
        return 0;
    }
 
    int result = 0;
 
    //여유가 있을때 
    if (M >= sumTime + arr[index]) {        
        //이 과목 포함 예상 획득 점수 
        int a = Search(index + 1, sumTime + arr[index]) + brr[index];
        //이 과목 비포함 예상 획득 점수 
        int b = Search(index + 1, sumTime);
 
        result = max(a, b);
    }
 
    return result;
}
 
int main()
{
 
    cin >> N >> costLimit;
 
    for (int i = 0; i < N; i++) {
        cin >> arr[i];
        cin >> brr[i];        
    }
 
    cout << Search(0,0);
 
 
    return 0;
}
cs



뭘 메모제이션 해야할까요?