λ¬Έμ
7
3 8
8 1 0
2 7 4 4
4 5 2 6 5
μ κ·Έλ¦Όμ ν¬κΈ°κ° 5μΈ μ μ μΌκ°νμ ν λͺ¨μ΅μ΄λ€.
맨 μμΈ΅ 7λΆν° μμν΄μ μλμ μλ μ μ€ νλλ₯Ό μ ννμ¬ μλμΈ΅μΌλ‘ λ΄λ €μ¬ λ, μ΄μ κΉμ§ μ νλ μμ ν©μ΄ μ΅λκ° λλ κ²½λ‘λ₯Ό ꡬνλ νλ‘κ·Έλ¨μ μμ±νλΌ. μλμΈ΅μ μλ μλ νμ¬ μΈ΅μμ μ νλ μμ λκ°μ μΌμͺ½ λλ λκ°μ μ€λ₯Έμͺ½μ μλ κ² μ€μμλ§ μ νν μ μλ€.
μΌκ°νμ ν¬κΈ°λ 1 μ΄μ 500 μ΄νμ΄λ€. μΌκ°νμ μ΄λ£¨κ³ μλ κ° μλ λͺ¨λ μ μμ΄λ©°, λ²μλ 0 μ΄μ 9999 μ΄νμ΄λ€.
μ λ ₯
첫째 μ€μ μΌκ°νμ ν¬κΈ° n(1 ≤ n ≤ 500)μ΄ μ£Όμ΄μ§κ³ , λμ§Έ μ€λΆν° n+1λ²μ§Έ μ€κΉμ§ μ μ μΌκ°νμ΄ μ£Όμ΄μ§λ€.
μΆλ ₯
첫째 μ€μ ν©μ΄ μ΅λκ° λλ κ²½λ‘μ μλ μμ ν©μ μΆλ ₯νλ€.
https://www.acmicpc.net/problem/1932
π‘ νμ΄ λ° μ½λ
import sys
input = sys.stdin.readline
data = []
n = int(input())
for _ in range(n):
data.append(list(map(int, input().split())))
for i in range(1,n):
for j in range(i+1):
if j == 0:
data[i][j] = data[i-1][j] + data[i][j]
elif j == i:
data[i][j] = data[i-1][j-1] + data[i][j]
else:
data[i][j] = max(data[i-1][j-1], data[i-1][j]) + data[i][j]
print(max(data[n-1]))
μΌλ°μ μΈ λ€μ΄λλ―Ή νλ‘κ·Έλλ° λ¬Έμ μ΄λ€.
κ°μ₯ μΌμͺ½κ³Ό κ°μ₯ μ€λ₯Έμͺ½ μλ₯Ό μ μΈνκ³ λ μΌμͺ½ μκΉμ§μ μ΅λκ°κ³Ό μ€λ₯Έμͺ½ μκΉμ§μ μ΅λκ° μ€ λ ν° μλ₯Ό κ³¨λΌ νμ¬μ μλ₯Ό λν΄μ€λ€.
'Algorithm > π Baekjoon Judge' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[BOJ] λ°±μ€ 10844λ² μ¬μ΄ κ³λ¨ μ - νμ΄μ¬(Python) (0) | 2021.09.15 |
---|---|
[BOJ] λ°±μ€ 2156λ² ν¬λμ£Ό μμ - νμ΄μ¬(Python) (0) | 2021.09.15 |
[BOJ] λ°±μ€ 2579λ² κ³λ¨ μ€λ₯΄κΈ° - νμ΄μ¬(Python) (0) | 2021.09.14 |
[BOJ] λ°±μ€ 1149λ² RGB거리 - νμ΄μ¬(Python) (0) | 2021.09.14 |
[BOJ] λ°±μ€ 1463λ² 1λ‘ λ§λ€κΈ° - νμ΄μ¬(Python) (0) | 2021.09.10 |