λ¬Έμ
μλ΄μμΌλ‘ μΌνκ³ μλ λ°±μ€μ΄λ ν΄μ¬λ₯Ό νλ €κ³ νλ€.
μ€λλΆν° N+1μΌμ§Έ λλ λ ν΄μ¬λ₯Ό νκΈ° μν΄μ, λ¨μ NμΌ λμ μ΅λν λ§μ μλ΄μ νλ €κ³ νλ€.
λ°±μ€μ΄λ λΉμμκ² μ΅λν λ§μ μλ΄μ μ‘μΌλΌκ³ λΆνμ νκ³ , λΉμλ ν루μ νλμ© μλ‘ λ€λ₯Έ μ¬λμ μλ΄μ μ‘μλμλ€.
κ°κ°μ μλ΄μ μλ΄μ μλ£νλλ° κ±Έλ¦¬λ κΈ°κ° Tiμ μλ΄μ νμ λ λ°μ μ μλ κΈμ‘ Piλ‘ μ΄λ£¨μ΄μ Έ μλ€.
N = 7μΈ κ²½μ°μ λ€μκ³Ό κ°μ μλ΄ μΌμ νλ₯Ό 보μ.
1μΌ2μΌ3μΌ4μΌ5μΌ6μΌ7μΌTiPi
3 | 5 | 1 | 1 | 2 | 4 | 2 |
10 | 20 | 10 | 20 | 15 | 40 | 200 |
1μΌμ μ‘νμλ μλ΄μ μ΄ 3μΌμ΄ 걸리며, μλ΄νμ λ λ°μ μ μλ κΈμ‘μ 10μ΄λ€. 5μΌμ μ‘νμλ μλ΄μ μ΄ 2μΌμ΄ 걸리며, λ°μ μ μλ κΈμ‘μ 15μ΄λ€.
μλ΄μ νλλ° νμν κΈ°κ°μ 1μΌλ³΄λ€ ν΄ μ μκΈ° λλ¬Έμ, λͺ¨λ μλ΄μ ν μλ μλ€. μλ₯Ό λ€μ΄μ 1μΌμ μλ΄μ νκ² λλ©΄, 2μΌ, 3μΌμ μλ μλ΄μ ν μ μκ² λλ€. 2μΌμ μλ μλ΄μ νκ² λλ©΄, 3, 4, 5, 6μΌμ μ‘νμλ μλ΄μ ν μ μλ€.
λν, N+1μΌμ§Έμλ νμ¬μ μκΈ° λλ¬Έμ, 6, 7μΌμ μλ μλ΄μ ν μ μλ€.
ν΄μ¬ μ μ ν μ μλ μλ΄μ μ΅λ μ΄μ΅μ 1μΌ, 4μΌ, 5μΌμ μλ μλ΄μ νλ κ²μ΄λ©°, μ΄λμ μ΄μ΅μ 10+20+15=45μ΄λ€.
μλ΄μ μ μ ν νμ λ, λ°±μ€μ΄κ° μ»μ μ μλ μ΅λ μμ΅μ ꡬνλ νλ‘κ·Έλ¨μ μμ±νμμ€.
μ λ ₯
첫째 μ€μ N (1 ≤ N ≤ 15)μ΄ μ£Όμ΄μ§λ€.
λμ§Έ μ€λΆν° Nκ°μ μ€μ Tiμ Piκ° κ³΅λ°±μΌλ‘ ꡬλΆλμ΄μ μ£Όμ΄μ§λ©°, 1μΌλΆν° NμΌκΉμ§ μμλλ‘ μ£Όμ΄μ§λ€. (1 ≤ Ti ≤ 5, 1 ≤ Pi ≤ 1,000)
μΆλ ₯
첫째 μ€μ λ°±μ€μ΄κ° μ»μ μ μλ μ΅λ μ΄μ΅μ μΆλ ₯νλ€.
https://www.acmicpc.net/problem/14501
14501λ²: ν΄μ¬
첫째 μ€μ λ°±μ€μ΄κ° μ»μ μ μλ μ΅λ μ΄μ΅μ μΆλ ₯νλ€.
www.acmicpc.net
π‘ νμ΄ λ° μ½λ
import sys
input = sys.stdin.readline
data = []
n = int(input())
for _ in range(n):
data.append(list(map(int, input().split())))
d = [0] * (n+1)
for i in range(1,n+1):
t, p = data[i-1][0], data[i-1][1]
if i+t-1 <= n:
d[i+t-1] = max(d[i+t-1], d[i-1] + p)
if d[i] < d[i-1] :
d[i] = d[i-1]
print(max(d))
iμΌμ§Έμ μμν μλ΄μ΄ λλλ λ (i+t-1)μ κΈ°μ€μΌλ‘ i-1μΌμ§ΈκΉμ§μ μ΅λ μλ΄ λΉμ©(d[i-1])μ μ΄λ² μλ΄ λΉμ©(p)λ₯Ό λν κ°λ€ μ€ κ°μ₯ ν° κ°μΌλ‘ DPν μ΄λΈ(d)μ κ³μ κ°±μ νλ€. μ΄λ, d[i]κ° d[i-1]λ³΄λ€ μμ κ²½μ°λ i-1μΌμ§ΈκΉμ§λ§ μλ΄νλ κ²μ΄ λ μ΄λμ΄λ―λ‘ d[i]λ₯Ό d[i-1]κ°μΌλ‘ λ체ν΄μ€λ€. κ²°κ΅μ DP ν μ΄λΈμ μ΅λκ°μ΄ λ°λ‘ λ°±μ€μ΄κ° μ»μ μ μλ μ΅λ μμ΅μ΄ λλ€.
'Algorithm > π Baekjoon Judge' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[BOJ] λ°±μ€ 1202λ² λ³΄μ λλ - νμ΄μ¬(Python) (0) | 2021.11.23 |
---|---|
[BOJ] λ°±μ€ 1012λ² μ κΈ°λ λ°°μΆ - νμ΄μ¬(Python) (0) | 2021.10.07 |
[BOJ] λ°±μ€ 11052λ² μΉ΄λ ꡬ맀νκΈ° - νμ΄μ¬(Python) (0) | 2021.10.06 |
[BOJ] λ°±μ€ 10844λ² μ¬μ΄ κ³λ¨ μ - νμ΄μ¬(Python) (0) | 2021.09.15 |
[BOJ] λ°±μ€ 2156λ² ν¬λμ£Ό μμ - νμ΄μ¬(Python) (0) | 2021.09.15 |