본문 바로가기
알고리즘/dynamic programming

[백준][Python] 19947번 투자의 귀재 배주형

by 임짠짠 2022. 7. 25.
반응형
 

19947번: 투자의 귀재 배주형

2020년에 학교로 복학한 주형이는 월세를 마련하기 위해서 군 적금을 깨고 복리 투자를 하려고 한다. 주형이가 하려는 투자에는 3가지 방법의 투자 방식이 있다.  1년마다 5%의 이율을 얻는 투자 (

www.acmicpc.net

 

코드

h,y = map(int,input().split())
dp = [0 for _ in range(y+1)]
dp[0] = h

for i in range(1,y+1):
	if i >= 5:
		dp[i] = int(max(dp[i-1]*1.05, dp[i-3]*1.2, dp[i-5]*1.35))
	elif i >= 3:
		dp[i] = int(max(dp[i-1]*1.05, dp[i-3]*1.2))
	else:
		dp[i] = int(dp[i-1]*1.05)

print(dp[y])

 

설명

dynamic programming을 이용해서 해당 년도에 얻을 수 있는 최댓값을 계속 추가해나갔다.

i가 5 이상이면 (1년 전 최댓값 * 1.05), (3년 전 최댓값 * 1.2), (5년 전 최댓값 * 1.35) 중 최댓값을 dp[i]로 정해준다.

i가 3이상 5 미만이면 (1년 전 최댓값 * 1.05), (3년 전 최댓값 * 1.2) 중 최댓값을 dp[i]로 정해주고 

3보다 작으면 (1년 전 최댓값 * 1.05)를 dp[i] 값으로 정해준다.

반응형

댓글