2νλ 2νκΈ° μκ³ λ¦¬μ¦ κ³Όμ _1μ£Όμ°¨(λ°±μ€_1932λ²:μ μ μΌκ°ν)
π 1μ£Όμ°¨ κ³Όμ 2
λ¬Έμ
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λ²μ§Έ μ€κΉμ§ μ μ μΌκ°νμ΄ μ£Όμ΄μ§λ€.
μΆλ ₯
첫째 μ€μ ν©μ΄ μ΅λκ° λλ κ²½λ‘μ μλ μμ ν©μ μΆλ ₯νλ€.
π λ΄ μκ°(νμ΄)
μΌλ¨ λ¬Έμ λ₯Ό 보면 ν¬κΈ°κ° 5μΈ μ μ μΌκ°νμΈλ°, 맨μμΈ΅ 7λΆν° μλ μλ€ μ€ νλλ₯Ό νν΄ μλμΈ΅μΌλ‘ λ΄λ €μ¬ λ, μ νν μμ ν©μ΄ μ΅λκ° λλλ‘ ν΄μΌνλ€.
μλμΈ΅ μλ νμ¬ μΈ΅μμ μ νλ μμ λκ°μ μΌμͺ½ λλ λκ°μ μ€λ₯Έμͺ½μ μλ κ² μ€μμλ§ μ νκ°λ₯νλ€.
ν΄λΉλ¬Έμ λ λ°°μ΄λ‘ν΄μ ꡬνμλ μ΅λκ° λλ κ°μ ꡬνλλ‘ κ΅¬μ±ν΄μΌν κ² κ°λ€.
νμ΄μ¬μ νκ±°λΌλ©΄, forλ¬Έμ ν΅ν΄μ ꡬνμ ν΄μΌν κ² κ°κ³ , μ€λ₯Έμͺ½ λκ°μ κ³Ό μ€λ₯Έμ‘± λκ°μ μ€ λμ μ ν΄μΌνλ―λ‘ appendν¨μλ₯Ό ꡬνν΄μΌν κ²μ΄λ€.
πμ½λ λ° μ½λ ν΄μ
# μ
λ ₯λ°μ μ«μμ κ°μ n
n = int(input())
d = []
for i in range(n):
# κ° νμ μ«μλ€μ μ
λ ₯λ°μ 리μ€νΈμ μΆκ°νκΈ°
d.append(list(map(int, input().split())))
# μΌκ°νμ λ λ²μ§Έ νλΆν° μμ
for i in range(1, n):
for j in range(len(d[i])):
# 첫 λ²μ§Έ μ΄ μ²λ¦¬: μμ νμ 첫 λ²μ§Έ μ΄κ³Ό λνκΈ°
if j == 0:
d[i][j] = d[i][j] + d[i-1][j]
# λ§μ§λ§ μ΄ μ²λ¦¬: μμ νμ λ§μ§λ§ μ΄κ³Ό λνκΈ°
elif j == len(d[i]) - 1:
d[i][j] = d[i][j] + d[i-1][j-1]
# μ€κ° μ΄ μ²λ¦¬: μμ λ μ΄ μ€ ν° κ°μ λνκΈ°
else:
d[i][j] = max(d[i-1][j-1], d[i-1][j]) + d[i][j]
# λ§μ§λ§ νμμ μ΅λκ° μΆλ ₯νκΈ°
print(max(d[n-1]))
ν΄λΉ μκ³ λ¦¬μ¦μ λ€μ΄λλ―Ή νλ‘κ·Έλλ°μΌλ‘ νμ΄μΌνλ€.
μ΄ μ½λλ μ£Όμ΄μ§ μ«μλ‘ μ΄λ£¨μ΄μ§ μΌκ°ν ννμ λ°μ΄ν°λ₯Ό μ λ ₯λ°μ, κ°μ₯ ν° κ²½λ‘μ ν©μ ꡬνλ μκ³ λ¦¬μ¦μ΄λ€.
νλμ© μ μ΄κ°λ©΄μ κ·μΉμ μ°ΎμμΌνλ€.
d[0][0]=7
d[1][0]=3+7, d[1][1]=8+7
d[2][0]=8+d[1][0], d[2][1]=1+max(d[1][0],d[1][1]),
d[2][2]=0+d[1][1]
d[3][0]=2+d[2][0], d[3][1]=7+max(d[2][0],d[2][1]),
d[3][2]=4+max(d[2][1],d[2][2]), d[3][3]=4+d[2][2]
κ° λΌμΈμ μ²μκ³Ό λμ λ°λ‘ μμ μ«μλ₯Ό λν΄μ£Όκ³ , λλ¨Έμ§λ μΌμͺ½ λκ°μ , μ€λ₯Έμͺ½ λκ°μ μ€ μ΅λκ°μ λν΄λκ° κ³μ λμ ν΄μ λν΄κ°λλ‘ν΄μΌνλ€.
1) μ λ ₯νκΈ°
nμ μΌκ°νμ ν μλ₯Ό λνλ΄κ³ , μ΄ν κ° νμ μ«μλ₯Ό μ λ ₯λ°μ 2μ°¨μ 리μ€νΈ dμ μ μ₯νλ€.
2)κ²½λ‘ ν© κ³μ°νκΈ°
- μΌκ°νμ λ λ²μ§Έ νλΆν° μμνμ¬ κ° μμμ κ°μ κ°±μ
- 첫 λ²μ§Έ μ΄μ μμλ μμ νμ ν΄λΉ μμλ§ λνκ³ ,
- λ§μ§λ§ μ΄μ μμ νμ λ§μ§λ§ μμμ λνλ€.
- μ€κ° μ΄μ, μμ νμμ ν΄λΉ μμμ μΌμͺ½κ³Ό μ€λ₯Έμͺ½μ μ΅λκ°μ λνλ€.
- μ΄ κ³Όμ μ ν΅ν΄ ν΄λΉ κ²½λ‘μ μ΅λ ν©μ λνλΌ μ μμ.
3)κ²°κ³Ό μΆλ ₯νκΈ°
- λ§μ§λ§ νμμ κ°μ₯ ν° κ°μ μ°Ύμ μΆλ ₯νλ€. μ΄λ μΌκ°νμ κΌλκΈ°μμ λ°λ₯κΉμ§ λ΄λ €κ°λ κ²½λ‘ μ€ μ΅λ ν©μ λνλ΄λλ‘ νλ€.
μ΄μ νκΈ° μμνμΌλκΉ μ΄μ¬ν μκ³ λ¦¬μ¦ κ³΅λΆλ₯Ό ν΄μΌκ² λ€λ μκ°μ΄ λ§κ΅¬λ€μλ€..!
μκ³ λ¦¬μ¦ κ³Όμ λ!
[μ°Έκ³ μλ£]
[λ°±μ€/νμ΄μ¬] 1932 μ μ μΌκ°ν
https://www.acmicpc.net/problem/1932λ€μ΄λλ―Ήνλ‘κ·Έλλ°νλμ© μ μ΄κ°λ©΄μ κ·μΉμ μ°Ύμλ€.ex)d0=7d1=3+7, d1=8+7d2=8+d1, d2=1+max(d1,d1),d2=0+d1d3=2+d2, d3=7+max(d2,d2),d3=4
velog.io