2020년에 학교로 복학한 주형이는 월세를 마련하기 위해서 군 적금을 깨고 복리 투자를 하려고 한다.
주형이가 하려는 투자에는 3가지 방법의 투자 방식이 있다.
투자를 할 때에는 다음과 같은 주의점이 있다.
예를 들어서, 지금 가진 돈이 11111원이면, A 방식이면 1년 후에 555원, B 방식이면 3년 후에 2,222원, C 방식이면 5년 후에 3,888원을 이자로 받을 수 있다. 만약 C 방식으로 투자했지만 4년이 지난 시점이라면 받을 수 있는 이자는 0원이다.
주형이의 초기 비용이 H원일 때, Y년이 지난 시점에 가장 많은 금액을 얻을 수 있는 투자 패턴을 분석하고 그 금액을 출력하자.
첫째 줄에 초기 비용 H와 투자 기간 Y가 주어진다.
모든 입력은 정수로 주어진다.
가장 많은 이득을 얻었을 때의 총 자산을 소수점을 모두 버리고 정수로 출력한다.
10,000 ≤ H ≤ 100,000, H는 정수
0 ≤ Y ≤ 10, Y는 정수
95229 3
114274
25542 10
46549
#include <iostream>
#define MAX 11
using namespace std;
int DP[MAX];
int main(){
ios::sync_with_stdio(0);
cin.tie(0);
int H, Y;
cin >> H >> Y;
DP[0] = H;
for(int i = 1; i <= Y; i++){
DP[i] = (int)(DP[i-1]*1.05);
if(i >= 3){
DP[i] = max(DP[i], (int)(DP[i-3] * 1.2));
}
if(i >= 5){
DP[i] = max(DP[i], (int)(DP[i-5] * 1.35));
}
}
cout << DP[Y] << '\n';
}
매번 투자법을 바꿀 수 있다. 바꿨다고 생각해보고 3년 이상부터, 5년 이상부터 각각의 경우를 다시 시뮬레이션 해 준다.
우선은 1년마다 갱신되는 상품에 가입했다고 생각 해 보는 것이다. 2년 째에 3년짜리를 바꿨다고 해도 어쨌든 4년부터 결과가 보이든 말든 한다.
DP 점화식을 구하기 어려워하는 학생들에게 정말 좋은 연습문제가 될 것이라 생각하는 문제다.