ν°μ€ν 리 λ·°
π¨π» μ½λ©ν
μ€νΈ/νλ‘κ·Έλλ¨Έμ€
νλ‘κ·Έλλ¨Έμ€: λλμ§
dirmathfl 2020. 10. 24. 21:31728x90
λ°μν
λ¬Έμ
λ¬Έμ νμ΄
μΈμ ν λ μ§μ λ°©λ²μ₯μΉκ° μ°κ²°λμ΄ νΈ μ μλ€λ μ ν 쑰건μ κ°μ§κ³ μλ€. μ΄λ μ§μ νΈμ΄μ κ°μ₯ ν°λμ νμΉ μ μλ μ΅λκ°μ λ°ννλ λ¬Έμ μ΄λ€. λ¬Έμ λ₯Ό νκΈ° μν΄μλ λ€μκ³Ό κ°μ κ²½μ°λ₯Ό μκ°νλ©΄ μ½κ² ν΄κ²°ν μ μλ€.
- μ§ 1κ° : ν΄λΉ μ§μ ν°λ κ²μ΄ μ΅λ κ°μ΄λ€.
- μ§ 2κ° : λ μ€μ `money`κ° ν° κ²μ ν°λ κ²μ΄ μ΅λ κ°μ΄λ€.
- μ§ 3κ° : `iμ i - 2` λλ `i - 1` μ§μ `money` μ€ μ΅λκ°μΈ κ²½μ°λ₯Ό ν°λ κ²μ΄ μ΅λμ΄λ€.
- μ§ 3κ° μΈ κ²½μ°μμ μ μ μλ―μ΄ κ²½μ°μ μκ° λ€μ 2κ°μ§λ‘ λλλ€.
- 첫 λ²μ§Έ μ§μ 무쑰건 ν°λ κ²½μ°.
- `dp[FIRST][0], dp[FIRST][1] = money[0], moeny[0]`λ‘ μ΄κΈ°ν νλ€.
- λ§μ§λ§ μ§μ 무쑰건 ν°λ κ²½μ°.
- `dp[LAST][0], dp[LAST][1] = 0, money[1]`λ‘ μ΄κΈ°ν νλ€.
- 첫 λ²μ§Έ μ§μ 무쑰건 ν°λ κ²½μ°.
μμ κ°μ κ²½μ°λ₯Ό ν΅ν΄ μ§μ νΈ μ μλ μ΅λκ°μ μ νμμ `dp[i] = max(dp[i - 1], money[i], dp[i - 2])`μ μ μΆν μ μλ€.
μ½λ
FIRST, LAST = 0, 1
def solution(money):
length = len(money)
dp = [[0] * length for _ in range(2)]
dp[FIRST][0], dp[FIRST][1] = money[0], money[0]
dp[LAST][0], dp[LAST][1] = 0, money[1]
for i in range(2, length):
if i < length - 1:
dp[FIRST][i] = max(dp[FIRST][i - 1], money[i] + dp[FIRST][i - 2])
dp[LAST][i] = max(dp[LAST][i - 1], money[i] + dp[LAST][i - 2])
return max(max(dp[FIRST]), max(dp[LAST]))
728x90
λ°μν
'π¨βπ» μ½λ©ν μ€νΈ > νλ‘κ·Έλλ¨Έμ€' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
νλ‘κ·Έλλ¨Έμ€: λ°©λ¬Έ κΈΈμ΄ (0) | 2020.10.25 |
---|---|
νλ‘κ·Έλλ¨Έμ€: μ κ΅μ¬μ¬ (0) | 2020.10.25 |
νλ‘κ·Έλλ¨Έμ€: μ‘°μ΄μ€ν± (0) | 2020.10.23 |
νλ‘κ·Έλλ¨Έμ€: ν° μ λ§λ€κΈ° (0) | 2020.10.23 |
νλ‘κ·Έλλ¨Έμ€: SQL - IS NULL (0) | 2020.10.21 |
λκΈ
κΈ λ³΄κ΄ν¨
μ΅κ·Όμ μ¬λΌμ¨ κΈ
μ΅κ·Όμ λ¬λ¦° λκΈ