ํด์ฌ
๋ฌธ์
ํด์ฌ๋ฅผ ์งํํํ๋ ค ํ๋๋๋ฐ N+1์ผ ์งธ ๋๋๋ ํด์ฌ๋ฅผ ํ๊ธฐ ์ํด์ N์ผ ๋์ ๋ง์ ์๋ด์ ํ๋ ค๊ณ ํ๋ค.
์๋ด์ ์๋ฃํ๋๋ฐ ๊ฑธ๋ฆฌ๋ ์๊ฐ T์ ์๋ด์ ํ์ ๋ ๋ฐ์ ์ ์๋ ๊ธ์ก P๋ฅผ ๋ณด๊ณ , ํด์ฌ ์ ๊น์ง ์ต๋ ์์ต์ ๊ตฌํ๋ ๋ฌธ์ ์ด๋ค.
์์
1์ผ | 2์ผ | 3์ผ | 4์ผ | 5์ผ | 6์ผ | 7์ผ | |
---|---|---|---|---|---|---|---|
Ti | 3 | 5 | 1 | 1 | 2 | 4 | 2 |
Pi | 10 | 20 | 10 | 20 | 15 | 40 | 200 |
์
๋ ฅ
7
3 10
5 20
1 10
1 20
2 15
4 40
2 200
์ถ๋ ฅ
45
๋ฌธ์ ํ์ด ์ ๋ต
day | 0 | 1 | 2 | 3 | 4 | 5 | 6 |
---|---|---|---|---|---|---|---|
Ti | 3 | 5 | 1 | 1 | 2 | 3 | 2 |
Pi | 10 | 20 | 10 | 20 | 15 | 40 | 200 |
day๋ 0~n-1, ํด์ฌ์ผ n
dp ๋ฐฉ์์ผ๋ก ํผ๋ค
- dp[day] = max(dp[day+1],dp[day+T[day]]+P[day])
- day์์ ์์ํด์ ํด์ฌ์ผ๊น์ง์ ์์ต์ ์ต๋๊ฐ์ dp[day]์ ์ ์ฅ
ex) dp[0]์๋ 0์ผ๋ถํฐ ํด์ฌํ ๋๊น์ง์ ์ต๋๊ฐ์ ์ ์ฅ
dp[day]์๋ ๋ ๊ฐ์ง ์ค์์ ์ต๋๊ฐ์ ์ ์ฅ
- ์ค๋์ ์ค์ผ์ค์ ์ ํ๋ ๊ฒฝ์ฐ
dp[day+1] : ์ค๋์ ์ค์ผ์ค์ ์ํ๋ ๊ฒฝ์ฐ๋ ๋ ์ง๋ฅผ ํ๋ ๋๊ธฐ๋ฉด ๋จ - ์ค๋์ ์ค์ผ์ค์ ํ๋ ๊ฒฝ์ฐ
dp[day +T[day]]+P[day] : day[0]์ ์ค์ผ์ค์ ํ๋ค๋ฉด 0 ๋ํ๊ธฐ day[0]์ ์ํํ๋๋ฐ ๊ฑธ๋ฆฌ๋ ๊ธฐ๊ฐ์ธ T[day]๋ฅผ ๋ํด์ฃผ๊ณ , ์ค์ผ์ค์ ์ํํ๊ธฐ ๋๋ฌธ์, day[0]์์ ์ค ์ ์๋ ๊ธ์ก์ธ P[day]๋ฅผ ๋ํด์ค๋ค.
dp[day] = max(dp[day+1],dp[day+T[day]]+P[day])
solve(0) = max(solve(1),solve(3)+10) = 45
solve(1) = max(solve(2),solve(6)+20) = 45
solve(2) = max(solve(3),solve(3)+10) = 45
solve(3) = max(solve(4),solve(4)+20) = 35
solve(4) = max(solve(5),solve(6)+15) = 15
solve(5) = max(solve(6),solve(8)+40) = 0
solve(6) = max(solve(7),solve(8)+200) = 0
solve(7) = 0
solve(8) = -๋ฌดํ๋
solve(8)๋ถํฐ๋ 9์ผ์ ํด์ฌํ๋๊ฒ ๋์ด๋ฒ๋ฆผ
Results
Version | Memory | Time(ms) | info |
---|---|---|---|
solution1.py | 28776KB | 64ms | Baseline |
Solution 1
def solve(t,p):
max_pay = 0 #์ง๊ธ๊น์ง ์ต๋ํ์ด
for day in range(n):
max_pay = max(max_pay,dp[day])
if day+t[day] > n:
continue
dp[day+t[day]] = max(dp[day+t[day]],max_pay+p[day])
#max(์ผ์ ์ ํ๊ณ ๋์ด๊ฐ ๊ฒฝ์ฐ ํ์ด,ํ์ฌ day๊น์ง์์ ๋ฒ์ ๋์ ์ต๋๊ฐ + ํ์ฌ ์ผ์ ํ ๊ฒฝ์ฐ ํ์ด)
print(max(dp))
if __name__ == "__main__":
n = int(input())
t,p = [0]*n,[0]*n
dp = [0]*(n+1)
for i in range(n):
t[i], p[i] = map(int, input().split())
solve(t,p)
'Algorithm > ๋ฐฑ์ค' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[๋ฐฑ์ค] #18352 ํน์ ๊ฑฐ๋ฆฌ์ ๋์ ์ฐพ๊ธฐ (Python) (0) | 2022.01.18 |
---|---|
[๋ฐฑ์ค] #15922 ์์ฐ์ผ ์ฐ์์ผ์ด์ผ!! (Python) (0) | 2021.05.18 |
[๋ฐฑ์ค] #2529 ๋ถ๋ฑํธ (Python) (0) | 2021.05.18 |
[๋ฐฑ์ค] #1764 ๋ฃ๋ณด์ก (Python) (0) | 2021.03.15 |
[๋ฐฑ์ค] #15970 ํ์ดํ ๊ทธ๋ฆฌ๊ธฐ (Python) (0) | 2021.03.05 |