어발 2022. 3. 8. 09:35

출처 - 백준사이트

14501. 퇴사

나의 풀이

#include <iostream>

using namespace std;

int N = 0;
int daypay[2][15];
int result;
int day, pay;

void dfs(int idx) {
    for (int i=idx ; i<N ; i++) {
        if (N-i >= daypay[0][i] && (day + daypay[0][i] <= N)) {
            day += daypay[0][i];
            pay += daypay[1][i];
            dfs(i+daypay[0][i]);
            day -= daypay[0][i];
            pay -= daypay[1][i];
        }
    }

    if (result<pay)
        result = pay;
}

int main (void) {
    ios::sync_with_stdio(false), cin.tie(0), cout.tie(0);
    cin >> N;

    for (int i=0 ; i<N ; i++)
        cin >> daypay[0][i] >> daypay[1][i];

    dfs(0);

    cout << result;

    return 0;
}
728x90