알고리즘/백트래킹

[백준/백트래킹/C++] 퇴사 (삼성 SW 역량 테스트 기출)

데메즈 2023. 1. 13. 14:35
728x90
반응형

문제집: 삼성 SW 역량 테스트 기출 문제 (baekjoon)

www.acmicpc.net

14501번: 퇴사

첫째 줄에 백준이가 얻을 수 있는 최대 이익을 출력한다.

www.acmicpc.net

#include <iostream>
#include <vector>

using namespace std;

int n;
vector<int> t, p;
int result = 0;

void work(int k, int tot){ // k일에 일 시작함, total 금액
    int day = k + t[k]; // 다음 일할 수 있는 날
    if(tot > result && day <= n) result = tot;

    if(day >= n) return;

    for(int i=day; i<n; i++){
        work(i, tot + p[i]);
    }
}

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

    cin >> n;
    for(int i=0; i<n; i++){
        int x, y;
        cin >> x >> y;
        t.push_back(x);
        p.push_back(y);
    }

    for(int i=0; i<t.size(); i++){
        work(i, p[i]);
    }

    cout << result;

    return 0;
}
728x90
반응형