반응형

문제 링크

 

14501번: 퇴사

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

www.acmicpc.net

 

풀이 )

  각 일차를 확인하면서 최대 이익을 저장하는 배열 dp에 최대이익을 갱신하면서 저장한다.

 

#include <iostream>
using namespace std;

int max(int a, int b) {
        return a >= b ? a : b;
}

int main() {
        int n;
        int dp[16] = { 0, };
        int t[16] = { 0, };
        int p[16] = { 0, };
        cin >> n;
        for (int i = 1; i <= n; i++) {
                cin >> t[i] >> p[i];
        }
        for (int i = 1; i <= n; i++) {
                int temp = 0;
                for (int j = 1; j <= i; j++) {
                        if (i - j >= 0)
                                if(j >= t[i - j + 1]) {
                                        dp[i] = max(temp, dp[i - j] + p[i - j + 1]);
                                        temp = dp[i];
                                }
                }
        }
        cout << dp[n] << endl;

        return 0;
}
반응형

'문제풀이 > 백준' 카테고리의 다른 글

[C++] 백준 - 5014 : 스타트링크  (0) 2020.04.05
[C++] 백준 - 14889 : 스타트와 링크  (0) 2020.04.02
[C++] 백준 - 3190 : 뱀  (0) 2020.04.01
[C++] 백준 - 2011 : 암호코드  (0) 2020.03.28
[C++] 백준 - 16282 : Black Chain  (0) 2020.03.27

+ Recent posts