-
[๋ฐฑ์ค] 1535 ์๋ with PythonPS 2022. 1. 10. 18:41728x90๋ฐ์ํ
๐ BOJ 1535 ์๋
๐ก ์กฐ๊ฑด
์ฒซ์งธ ์ค์ ์ฌ๋์ ์
N(โค 20)
.๋์งธ ์ค์ ๊ฐ๊ฐ์ ์ฌ๋์๊ฒ ์ธ์ฌ๋ฅผ ํ ๋, ์๋ ์ฒด๋ ฅ์ด 1๋ฒ ์ฌ๋๋ถํฐ ์์๋๋ก ์ ๋ ฅ.
์ ์งธ ์ค์๋ ๊ฐ๊ฐ์ ์ฌ๋์๊ฒ ์ธ์ฌ๋ฅผ ํ ๋, ์ป๋ ๊ธฐ์จ์ด 1๋ฒ ์ฌ๋๋ถํฐ ์์๋๋ก ์ ๋ ฅ.
์ฒด๋ ฅ๊ณผ ๊ธฐ์จ์ 100๋ณด๋ค ์๊ฑฐ๋ ๊ฐ์ ์์ฐ์ ๋๋ 0.
์ธ์ค์ด๊ฐ ์ป์ ์ ์๋ ์ต๋ ๊ธฐ์จ์ ์ถ๋ ฅ.
๋ธ๋ฃจํธํฌ์ค ์๊ณ ๋ฆฌ์ฆ, ๋ฐฐ๋ญ ์๊ณ ๋ฆฌ์ฆ ์ ํ ๋ฌธ์
๐ฅ ์์ค ์ฝ๋
from sys import stdin n = int(stdin.readline()) stamina_consum = [0] + list(map(int, stdin.readline().split())) get_pleasure = [0] + list(map(int, stdin.readline().split())) dp = [[0] * 101 for _ in range(n + 1)] for i in range(1, n + 1): for j in range(1, 101): if stamina_consum[i] <= j: dp[i][j] = max(dp[i-1][j], dp[i-1][j - stamina_consum[i]] + get_pleasure[i]) else: dp[i][j] = dp[i-1][j] print(dp[n][99])
๐ ์์ ๋ฐ ์คํ๊ฒฐ๊ณผ
์์
3 1 21 79 20 30 25
์คํ๊ฒฐ๊ณผ
50
โจ๏ธ ๋ฌธ์ ํ์ด
๋ธ๋ฃจํธํฌ์ค ์๊ณ ๋ฆฌ์ฆ
ํน์๋ ์ ์๊ณ ๋ฆฌ์ฆ
์ผ๋ก ํ์ดํ ์ ์๋ค.
๋๋๋ ์ ์๊ณ ๋ฆฌ์ฆ
์ ์ฌ์ฉํ๋ค.์ธ์ฌ๋ฅผ ํ ๋ ์ฌ์ฉํ๋ ์คํ ๋ฏธ๋ ์๋ชจํ๋ ๋ฆฌ์คํธ๋ฅผ
stamina_consum
์[0]
์ ์ฐ๊ฒฐํ์ฌ ์ ์ฅํ๋ค.
์ธ์ฌ๋ฅผ ํ ๋ ์ป์ ์ ์๋ ๊ธฐ์จ ๋ฆฌ์คํธ๋ฅผget_pleasure
์[0]
์ ์ฐ๊ฒฐํ์ฌ ์ ์ฅํ๋ค.dp ๋ฐฐ์ด์ ๋ง๋ ๋ค.
1๋ช ๋ถํฐ n๋ช
๊น์ง ์ธ์ฌ๋ฅผ ํ์ ๋, ์ป์ ์ ์๋ ์ต๋์ ๊ธฐ์จ์ ๊ฐ์ ์ ์ฅํ ๋ฐฐ์ด.i
๋ฒ์งธ ์ฌ๋์๊ฒ ์ธ์ฌ๋ฅผ ํ๊ณ , ์คํ ๋ฏธ๋ ์๋ชจ๋๋ณด๋ค ์ฒด๋ ฅj
๊ฐ ํด ๋ ์ธ์ฌ๋ฅผ ํด์ ์ป์ ์ ์๋ ๊ธฐ์จ์ ์์ ๊ณ์ฐํ์ฌ dp์ ์ ์ฅํ๋ค.- ์ฒด๋ ฅ์ด 1์ด ๊ธฐ์ค์ด๋ฉฐ, ์ถ๋ ฅํ ๋
dp[n][100]
์ ์ถ๋ ฅํ๋ฉด ์ธ์ค์ด๊ฐ ์ธ์ฌ๋ฅผ ํ๋ค ์ฃฝ์ด๋ฒ๋ฆฐ ๊ฒฝ์ฐ์ด๋ ์ค๋ต์ด๋ค.dp[n][99]
๋ฅผ ์ถ๋ ฅํ๋ค. - ๋ง์ฝ
stamina[i]
๋ณด๋ค ์ฒด๋ ฅj
๊ฐ ์ ์ ๊ฒฝ์ฐ,dp[i][j]
๋dp[i-1][j]
์ ๊ฐ์ ๊ฐ์ ธ๋ค ๋ฃ๋๋ค. - ๊ทธ๋ ์ง ์์ ๊ฒฝ์ฐ์๋
dp[i-1][j]
์dp[i-1][j - stamina_consum[i]]
์get_pleasure[i]
๊ฐ ์ค ํฐ ๊ฑธ ์ง์ด ๋ฃ๋๋ค.
๐พ ๋๋์
- ๋ ์ ์๊ณ ๋ฆฌ์ฆ์ ํ์ด๋ ํ์ด๋ ํท๊ฐ๋ฆฐ๋ค.
- ์๊ณ ๋ฆฌ์ฆ์ ์๊ณ ์ ํ์ด๋ ์ด๋ ต๊ณ , ๊น๋จน์ผ๋ฉด ๋ต๋ ์๋ ๊ฒ ๊ฐ๋ค.
- ๋ ์ ์๊ณ ๋ฆฌ์ฆ ๋ฌธ์ ๋ฅผ ์ ๋ฆฌํด์ ํ์ด๋ด์ผํ ๊ฒ ๊ฐ๋ค.
- ๋ฌธ์ ํ์ด ํด์ค์ ์ฐ๋ฉด์๋ ํท๊ฐ๋ ค์ ๋ค์ ์ธํฐ๋ท์ ๋ณด๊ณ ์ฐพ์์ ์ดํดํ๊ณ ๋ฌธ์ ๋ฅผ ํด์ํด์ ์ผ๋ค.
๋ฐ์ํ'PS' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[๋ฐฑ์ค] 10819 ์ฐจ์ด๋ฅผ ์ต๋๋ก with Python (0) 2022.01.11 [๋ฐฑ์ค] 9461 ํ๋๋ฐ ์์ด with Python (0) 2022.01.10 [๋ฐฑ์ค] 1063 ํน with Python (0) 2021.12.29 [๋ฐฑ์ค] 20546 ๐ ๊ธฐ์ ์ ๋งค๋งค๋ฒ ๐ with Python (0) 2021.12.18 [๋ฐฑ์ค] 18511 ํฐ ์ ๊ตฌ์ฑํ๊ธฐ with Python (0) 2021.12.18