βοΈ λ¬Έμ
κ³λ¨ μ€λ₯΄κΈ° κ²μμ κ³λ¨ μλ μμμ λΆν° κ³λ¨ κΌλκΈ°μ μμΉν λμ°©μ κΉμ§ κ°λ κ²μμ΄λ€. <κ·Έλ¦Ό 1>κ³Ό κ°μ΄ κ°κ°μ κ³λ¨μλ μΌμ ν μ μκ° μ°μ¬ μλλ° κ³λ¨μ λ°μΌλ©΄ κ·Έ κ³λ¨μ μ°μ¬ μλ μ μλ₯Ό μ»κ² λλ€.
μλ₯Ό λ€μ΄ <κ·Έλ¦Ό 2>μ κ°μ΄ μμμ μμλΆν° 첫 λ²μ§Έ, λ λ²μ§Έ, λ€ λ²μ§Έ, μ¬μ― λ²μ§Έ κ³λ¨μ λ°μ λμ°©μ μ λλ¬νλ©΄ μ΄ μ μλ 10 + 20 + 25 + 20 = 75μ μ΄ λλ€.
κ³λ¨ μ€λ₯΄λ λ°λ λ€μκ³Ό κ°μ κ·μΉμ΄ μλ€.
- κ³λ¨μ ν λ²μ ν κ³λ¨μ© λλ λ κ³λ¨μ© μ€λ₯Ό μ μλ€. μ¦, ν κ³λ¨μ λ°μΌλ©΄μ μ΄μ΄μ λ€μ κ³λ¨μ΄λ, λ€μ λ€μ κ³λ¨μΌλ‘ μ€λ₯Ό μ μλ€.
- μ°μλ μΈ κ°μ κ³λ¨μ λͺ¨λ λ°μμλ μ λλ€. λ¨, μμμ μ κ³λ¨μ ν¬ν¨λμ§ μλλ€.
- λ§μ§λ§ λμ°© κ³λ¨μ λ°λμ λ°μμΌ νλ€.
λ°λΌμ 첫 λ²μ§Έ κ³λ¨μ λ°κ³ μ΄μ΄ λ λ²μ§Έ κ³λ¨μ΄λ, μΈ λ²μ§Έ κ³λ¨μΌλ‘ μ€λ₯Ό μ μλ€. νμ§λ§, 첫 λ²μ§Έ κ³λ¨μ λ°κ³ μ΄μ΄ λ€ λ²μ§Έ κ³λ¨μΌλ‘ μ¬λΌκ°κ±°λ, 첫 λ²μ§Έ, λ λ²μ§Έ, μΈ λ²μ§Έ κ³λ¨μ μ°μν΄μ λͺ¨λ λ°μ μλ μλ€.
κ° κ³λ¨μ μ°μ¬ μλ μ μκ° μ£Όμ΄μ§ λ μ΄ κ²μμμ μ»μ μ μλ μ΄ μ μμ μ΅λκ°μ ꡬνλ νλ‘κ·Έλ¨μ μμ±νμμ€.
π€ μ μΆλ ₯ μμ
π‘ νμ΄
DP λλμ΄ νν λλ λ¬Έμ λΌμ νμ΄ λ¨κ³λ₯Ό μμλλ‘ μ μ΄λ³΄κ² λ€. μΌλ¨ μ΄ λ¬Έμ μμ DP ν μ΄λΈμ μν μ 'iλ²μ§Έ κ³λ¨κΉμ§ λλ¬νμ λ μ»μ μ μλ μ΅λ μ μ'μ΄κ³ μ΅μ’ μ μΌλ‘ DP ν μ΄λΈμ λ§μ§λ§ κ°μ΄ μ΄ κ²μμμ μ»μ μ μλ μ΅λκ°μ΄ λλ€.
π μ νμ μΈμ°κΈ°
μ νμμ μΈμ°κΈ° μ μλ λ κ°μ§λ κΈλ°© νμ ν μ μμλ€. λ¬Όλ‘ λλ μ¬κΈ°μ ν λ¨κ³ λ λμκ°μ μ νμμ λ°λ‘ μΈμ°μ§λ λͺ»νμ§λ§..!
β μΈ κ°μ κ³λ¨μ μ°μμΌλ‘ λ°μ μ μκΈ° λλ¬Έμ (iλ²μ§Έ κ³λ¨ κΈ°μ€) i-2λ²μ§Έ κ³λ¨μ λ°κ³ iλ²μ§Έ κ³λ¨μΌλ‘ μ€κ±°λ (iλ²μ§Έ κ³λ¨ κΈ°μ€) i-3λ²μ§Έ κ³λ¨, i-1λ²μ§Έ κ³λ¨μ λ°κ³ iλ²μ§Έ κ³λ¨μΌλ‘ μ€κ±°λ
β‘ μμ λ κ°μ§ κ²½μ°λ₯Ό λΉκ΅ν΄μ κ°μ΄ ν° κ±Έλ‘ DP ν μ΄λΈμ κ°±μ
β μμ μ νμμ λ§λ€μ΄λ³΄μλ©΄ μλμ κ°λ€.
i-2λ²μ§Έ κ³λ¨μ λ°κ³ iλ²μ§Έ κ³λ¨μΌλ‘ μ€λ κ²½μ°: dp[i-2]+stairs[i]
i-3λ²μ§Έ κ³λ¨, i-1λ²μ§Έ κ³λ¨μ λ°κ³ iλ²μ§Έ κ³λ¨μΌλ‘ μ€λ κ²½μ°: dp[i-3]+stairs[i-1]+stairs[i]
π©π» μ½λ
import sys
input = sys.stdin.readline
N = int(input())
stairs = [0]
dp = [0]*(N+1) # iλ²μ§Έ κ³λ¨κΉμ§ μμ λ μ»μ μ μλ μ΅λ μ μ
for _ in range(N):
stairs.append(int(input()))
if N == 1:
print(stairs[1])
else:
dp[1] = stairs[1]
dp[2] = stairs[1]+stairs[2]
for i in range(3, N+1):
dp[i] = max(dp[i-2]+stairs[i], dp[i-3]+stairs[i-1]+stairs[i])
print(dp[N])
μ΄ λ κ³λ¨μ΄ νλλ§ μμ κ²½μ°μλ dp[2]λ₯Ό μ±μ°λ λΆλΆμμ μΈλ±μ€ μλ¬κ° λκΈ° λλ¬Έμ 첫 λ²μ§Έ κ³λ¨ κ°μ κ·Έλλ‘ μΆλ ₯ν΄μ£Όλ©΄ λλ€.
DP ν μ΄λΈμ λ§λ€κ³ , μ μ ν μ΄μ©νλ μ°μ΅μ κ³μ ν΄μΌκ² λ€.
'Problem Solving > BOJ & Programmers' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[BOJ] 1931λ²: νμμ€ λ°°μ (0) | 2024.11.16 |
---|---|
[BOJ] 2607λ²: λΉμ·ν λ¨μ΄ (0) | 2024.10.18 |
[BOJ] Bronze λ¬Έμ νμ΄ λͺ¨μ (1) (1) | 2024.10.17 |
[BOJ] 1032λ²: λͺ λ Ή ν둬ννΈ (0) | 2024.10.03 |
[BOJ] 1002λ²: ν°λ (0) | 2024.10.03 |