https://www.acmicpc.net/problem/19947
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
def sol(money, years):
a_type, b_type, c_type = 1.05, 1.20, 1.35
dp = [0] * (years + 1)
dp[0] = money
for i in range(1, years + 1):
if i >= 5:
dp[i] = int(max(dp[i - 1] * a_type, dp[i - 3] * b_type, dp[i - 5] * c_type))
elif i >= 3:
dp[i] = int(max(dp[i - 1] * a_type, dp[i - 3] * b_type))
else:
dp[i] = int(dp[i - 1] * a_type)
return dp[years]
if __name__ == '__main__':
money, years = map(int, input().split())
print(sol(money, years))
|
cs |
전형적인 다이나믹 프로그래밍 문제죠
Typical Dynamic programming problem
반응형
'python-algorithm' 카테고리의 다른 글
백준 26307 Correct (0) | 2022.12.13 |
---|---|
백준 16208 귀찮음 (0) | 2022.12.12 |
백준 13333 Q-인덱스 (0) | 2022.12.12 |
백준 14912 숫자 빈도수 (0) | 2022.12.10 |
백준 15719 중복된 숫자 (0) | 2022.12.08 |
댓글