λ°±μ€ 1932 νμ΄μ¬
https://www.acmicpc.net/problem/1932
κ°μ₯ μλ¨μμ μ’μ°λ‘λ§ μ΄λνλ©΄μ μμ ν©μ΄ μ΅λκ° λλ κ²½λ‘μ μ΅μ’ ν©μ ꡬνλ λ¬Έμ μ λλ€. ν΄λΉ λ¬Έμ λ μμͺ½ λμ μ«μλ₯Ό μ μΈνκ³ μ΄μ μΈ΅μμ μΈλ±μ€... i-1κ³Ό iμ μμΉλ₯Ό λν κ°μ μΊμκ°μΌλ‘ μ μ₯ν΄μ κ°μ₯ λ§μ§λ§ μΈ΅μ μ΅λκ°μ ꡬνλ©΄ λλ€. μμ μμμμ λ©λͺ¨μ΄μ μ΄μ μ ν΅ν΄ μ΅μ’ μ μΌλ‘ μ»λ μΊμκ°μ μλμ κ°μ κ²μ΄λ€.
Python νμ΄ 1
import sys
read = sys.stdin.readline
n = int(read())
cache = [list(map(int, read().split())) for _ in range(n)]
for i in range(1, n):
for j in range(i+1):
if j == 0:
cache[i][j] += cache[i-1][0]
elif j == (i):
cache[i][j] += cache[i-1][-1]
else:
cache[i][j] += max(cache[i-1][j-1], cache[i-1][j])
print(max(cache[-1]))
- μΈ΅λ³ κ°μ 미리 리μ€νΈμ μ μ₯νλ€.
- μΈ΅μ κ°μ₯ μ²«λ² μ§Έ μμΉλ μ΄μ μΈ΅μ μ²«λ² μ§Έ μμΉμ κ°λ§ λν μ μλ€.
- μΈ΅μ κ°μ₯ λ§μ§λ§ μ«μλ μ΄μ μΈ΅μ λ§μ§λ§ μμΉμ κ°λ§ λν μ μλ€.
- λλ¨Έμ§ μ€κ°μ μλ μ«μλ€μ iμ i-1μ μμΉκ°μ λνλ€.
- κ³μν΄μ ν©μ°λ μΊμκ°μ λ§μ§λ§ μΈ΅μΌλ‘ λ΄λ €κ°μ λμ μ΅λκ°λ€μ λμ΄μ΄λ€.
- λ§μ§λ§ μΈ΅μμ μ΅λκ°μ μΆλ ₯νλ€.
λ¬Έμ λ₯Ό ν΄κ²°νκΈ° μν΄ μ λ λ§€μ° 1μ°¨μμ μΈ λ°©λ²μΌλ‘ μ κ·Όμ νμ΅λλ€. νμ§λ§ μ΄λ² λ¬Έμ λ Pythonμ λ΄μ₯ ν¨μμΈ zipμ νΉμ±μ μ΄μ©νλ©΄ νΈλ¦¬ννλ‘λ κ°μ§λ₯Ό λνλ λ°©λ²μ΄ μμ΅λλ€.
Python νμ΄ 2
z = zip(
[1, 2, 3],
[4, 5, 6],
[7, 8, 9]
)
print(list(z))
zip ν¨μλ₯Ό μ¬μ©ν΄μ ν¬κΈ°κ° κ°μ λ°°μ΄μ μΈμλ‘ λ£μ΄μ£Όλ©΄... κ°κ° μμΉμ μλ κ°μ λ¬Άμ΄μ ννλ‘ λ°νν΄μ€λ€.
- λ¬Έμ μ μμμμ 2λ² μ§Έ μΈ΅κΉμ§ κ³μ°μ΄ λμ΄μ§ μνμ΄κ³ 3λ²μ§Έ μΈ΅μ κ³μ°νλ κ³Όμ
- λ€μ μΈ΅μ κ³μ°νλ€κ³ νμ λ... μμͺ½ λμ μ§μ΄ μ λ§μ 0μ μΆκ°ν΄μ λνλ€.
κ³μ°μμ μ ν΄μΌνλ 2λ² μΈ΅μμ μμͺ½ λμ 0μ μΆκ°νλ©΄ λ€μ μΈ΅μ μλ₯Ό λ§μΆ°μ€ μ μλ€. μ΄ λ μμμ μΈλ‘λ‘λ³΄κ³ a+cμ b+cμ μ‘°ν©μ λ€μ μΈ΅μ ν©μ° κ²½μ°μ μκ° λλ€. cλ λ€μ μΈ΅μ μμ΄κΈ° λλ¬Έμ κ³ μ λκ³ aμ bλ₯Ό λ³κ²½νλ κ²μ΄κ³ ... μ΄λ° μμμ λ§μΆ°μ£ΌκΈ° μν΄ μμͺ½ λμ 0μ λνλ€.
import sys
read = sys.stdin.readline
n = int(read())
cache = []
for i in range(n):
floor = list(map(int, read().split()))
cache = [max(a+c, b+c) for a, b, c in zip([0]+cache, cache+[0], floor)]
print(max(cache))
- λ΄λΆ ν¨μ zipμ μ΄μ©ν΄μ μμ νννλ₯Ό λ§λ€μ΄μ€λ€.
- νμ¬μ λμ λ cacheμμ μμͺ½ λμ 0μ μΆκ°νκ³ νμ¬μ μΈ΅κ³Ό ν¨κ» μΈμλ‘ μ¬μ©λλ€.
- a+cμ b+c μ€ μ΅λκ°μ λ€μ cacheμ λ£μΌλ©΄ ν΄λΉ μΈ΅μμ ꡬν μ μλ μ΅λκ°μ μ»λλ€.
- μ΅μ’ μ μΌλ‘ λ§μ§λ§ μΈ΅μ μ΅λκ°μ μ»λλ€.
λκΈ