๐ญ ๋ฌธ์ ์ดํด
์ธ์ค์ด ์ฒด๋ ฅ์ด ์ต๋ 100์ด๋ฏ๋ก ์ซ์๋ฅผ ์ฆ๊ฐ์ํค๋ฉด์ ํด๋น ์ฒด๋ ฅ๋ด์ ์ป์ ์ ์๋ ์ต๋ ๊ธฐ์จ์ ๊ฐฑ์ ํ๋ค.
๊ตฌํ ์ธ์ด: Python
import sys
r = sys.stdin.readline
n = int(r())
hp_loss = list(map(int, r().split()))
pleasure = list(map(int, r().split()))
dp = [[0]*101 for _ in range(n+1)]
for i in range(1, n+1):
for j in range(100):
if j < hp_loss[i-1]:
dp[i][j] = dp[i-1][j]
else:
dp[i][j] = max(dp[i-1][j], dp[i-1][j-hp_loss[i-1]] + pleasure[i-1])
print(dp[n][99])
'Problem_Solving' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[ํ๋ก๊ทธ๋๋จธ์ค] ๋๋์ง / ๋์ ๊ณํ๋ฒ(Dynamic-Programming) (0) | 2021.03.11 |
---|---|
[ํ๋ก๊ทธ๋๋จธ์ค] ๋ฑ๊ตฃ๊ธธ / ๋์ ๊ณํ๋ฒ(Dynamic-Programming) (0) | 2021.03.11 |
[BOJ] ๋ฐฑ์ค 2512 ์์ฐ / ์ด๋ถํ์ (0) | 2021.02.11 |
[BOJ] ๋ฐฑ์ค 1764 ๋ฃ๋ณด์ก / ์ด๋ถํ์ (0) | 2021.02.11 |
[BOJ] ๋ฐฑ์ค 10816 ์ซ์ ์นด๋ 2 / ์ด๋ถํ์ (0) | 2021.02.09 |