λ¬Έμ μ€λͺ
μμ κ°μ μΌκ°νμ κΌλκΈ°μμ λ°λ₯κΉμ§ μ΄μ΄μ§λ κ²½λ‘ μ€, κ±°μ³κ° μ«μμ ν©μ΄ κ°μ₯ ν° κ²½μ°λ₯Ό μ°Ύμλ³΄λ €κ³ ν©λλ€. μλ μΉΈμΌλ‘ μ΄λν λλ λκ°μ λ°©ν₯μΌλ‘ ν μΉΈ μ€λ₯Έμͺ½ λλ μΌμͺ½μΌλ‘λ§ μ΄λ κ°λ₯ν©λλ€. μλ₯Ό λ€μ΄ 3μμλ κ·Έ μλμΉΈμ 8 λλ 1λ‘λ§ μ΄λμ΄ κ°λ₯ν©λλ€.
μΌκ°νμ μ λ³΄κ° λ΄κΈ΄ λ°°μ΄ triangleμ΄ λ§€κ°λ³μλ‘ μ£Όμ΄μ§ λ, κ±°μ³κ° μ«μμ μ΅λκ°μ return νλλ‘ solution ν¨μλ₯Ό μμ±νμΈμ.
μ νμ¬ν
- μΌκ°νμ λμ΄λ 1 μ΄μ 500 μ΄νμ λλ€.
- μΌκ°νμ μ΄λ£¨κ³ μλ μ«μλ 0 μ΄μ 9,999 μ΄νμ μ μμ λλ€.
μ μΆλ ₯ μ
triangle | return |
[[7], [3, 8], [8, 1, 0], [2, 7, 4, 4], [4, 5, 2, 6, 5]] | 30 |
νμ΄ μ½λ
def solution(triangle):
if len(triangle) == 1:
return triangle[0][0]
for h in range(1, len(triangle)):
for r in range(h+1):
if r == 0:
triangle[h][r] = triangle[h][r] + triangle[h-1][r]
elif r == h:
triangle[h][r] = triangle[h][r] + triangle[h-1][r-1]
else:
triangle[h][r] = max(triangle[h][r] + triangle[h-1][r-1], triangle[h][r] + triangle[h-1][r])
answer = max(triangle[-1])
return answer
λ€μ΄λλ―Ή νλ‘κ·Έλλ°μ μ νμ μΈ λ¬Έμ .
μΌκ°νμ κ°μ₯ μΌμͺ½ μλ, triangle[h][r] += triangle[h-1][r]
κ°μ₯ μ€λ₯Έμͺ½ μλ, triangle[h][r] += triangle[h-1][r-1]
λλ¨Έμ§ μλ λ λ°©ν₯ μ€ ν° λ°©ν₯μ μ νν΄ κ°±μ νλ©΄ λλ€.
μ΅μ’ μ μΌλ‘ κ°μ₯ μλ λ³μ μμ μ€ κ°μ₯ ν° κ°μ μ ννλ©΄ μ λ΅μ΄λ€.
'π μ½λ©ν μ€νΈ λλΉ : PS' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[νλ‘κ·Έλλ¨Έμ€] κ΄νΈ νμ νκΈ° (level2, python) (0) | 2022.09.09 |
---|---|
[νλ‘κ·Έλλ¨Έμ€] μ΄μ€μ°μ μμν (level3, python) (0) | 2022.09.09 |
[νλ‘κ·Έλλ¨Έμ€] H-Index (level2, python) (0) | 2022.09.09 |
[νλ‘κ·Έλλ¨Έμ€] νλ ¬μ κ³±μ (level2, python) (0) | 2022.09.09 |
[νλ‘κ·Έλλ¨Έμ€] μ νμ μκ°μ΄λ (level2, python) (0) | 2022.09.09 |