[λ°±μ€/python] 2579λ² : κ³λ¨ μ€λ₯΄κΈ°
λ¬Έμ
κ³λ¨ μ€λ₯΄κΈ° κ²μμ κ³λ¨ μλ μμμ λΆν° κ³λ¨ κΌλκΈ°μ μμΉν λμ°©μ κΉμ§ κ°λ κ²μμ΄λ€. <κ·Έλ¦Ό 1>κ³Ό κ°μ΄ κ°κ°μ κ³λ¨μλ μΌμ ν μ μκ° μ°μ¬ μλλ° κ³λ¨μ λ°μΌλ©΄ κ·Έ κ³λ¨μ μ°μ¬ μλ μ μλ₯Ό μ»κ² λλ€.
μλ₯Ό λ€μ΄ <κ·Έλ¦Ό 2>μ κ°μ΄ μμμ μμλΆν° 첫 λ²μ§Έ, λ λ²μ§Έ, λ€ λ²μ§Έ, μ¬μ― λ²μ§Έ κ³λ¨μ λ°μ λμ°©μ μ λλ¬νλ©΄ μ΄ μ μλ 10 + 20 + 25 + 20 = 75μ μ΄ λλ€.
κ³λ¨ μ€λ₯΄λ λ°λ λ€μκ³Ό κ°μ κ·μΉμ΄ μλ€.
- κ³λ¨μ ν λ²μ ν κ³λ¨μ© λλ λ κ³λ¨μ© μ€λ₯Ό μ μλ€. μ¦, ν κ³λ¨μ λ°μΌλ©΄μ μ΄μ΄μ λ€μ κ³λ¨μ΄λ, λ€μ λ€μ κ³λ¨μΌλ‘ μ€λ₯Ό μ μλ€.
- μ°μλ μΈ κ°μ κ³λ¨μ λͺ¨λ λ°μμλ μ λλ€. λ¨, μμμ μ κ³λ¨μ ν¬ν¨λμ§ μλλ€.
- λ§μ§λ§ λμ°© κ³λ¨μ λ°λμ λ°μμΌ νλ€.
λ°λΌμ 첫 λ²μ§Έ κ³λ¨μ λ°κ³ μ΄μ΄ λ λ²μ§Έ κ³λ¨μ΄λ, μΈ λ²μ§Έ κ³λ¨μΌλ‘ μ€λ₯Ό μ μλ€. νμ§λ§, 첫 λ²μ§Έ κ³λ¨μ λ°κ³ μ΄μ΄ λ€ λ²μ§Έ κ³λ¨μΌλ‘ μ¬λΌκ°κ±°λ, 첫 λ²μ§Έ, λ λ²μ§Έ, μΈ λ²μ§Έ κ³λ¨μ μ°μν΄μ λͺ¨λ λ°μ μλ μλ€.
κ° κ³λ¨μ μ°μ¬ μλ μ μκ° μ£Όμ΄μ§ λ μ΄ κ²μμμ μ»μ μ μλ μ΄ μ μμ μ΅λκ°μ ꡬνλ νλ‘κ·Έλ¨μ μμ±νμμ€.
μ λ ₯
μ λ ₯μ 첫째 μ€μ κ³λ¨μ κ°μκ° μ£Όμ΄μ§λ€.
λμ§Έ μ€λΆν° ν μ€μ νλμ© μ μΌ μλμ λμΈ κ³λ¨λΆν° μμλλ‘ κ° κ³λ¨μ μ°μ¬ μλ μ μκ° μ£Όμ΄μ§λ€. κ³λ¨μ κ°μλ 300μ΄νμ μμ°μμ΄κ³ , κ³λ¨μ μ°μ¬ μλ μ μλ 10,000μ΄νμ μμ°μμ΄λ€.
μΆλ ₯
첫째 μ€μ κ³λ¨ μ€λ₯΄κΈ° κ²μμμ μ»μ μ μλ μ΄ μ μμ μ΅λκ°μ μΆλ ₯νλ€.
μ λ΅
import sys
input = sys.stdin.readline
n = int(input())
score = []
for _ in range(n):
score.append(int(input()))
if n <= 2:
print(sum(score))
else:
total_score = [[score[i], score[i]] for i in range(n)]
# 0 -> 1 μ΄λ
total_score[1][0] += score[0]
for i in range(2, n):
total_score[i][0] += total_score[i - 1][1]
total_score[i][1] += max(total_score[i-2])
print(max(total_score[n-1]))
nμλ κ³λ¨μ κ°μλ₯Ό, scoreμλ κ° κ³λ¨μ μ μλ₯Ό μ μ₯νλ€.
if n <= 2:
print(sum(score))
κ³λ¨μ΄ 2κ° μ΄νλΌλ©΄ λͺ¨λ κ³λ¨μ λ°κ³ μ€λ κ²μ΄ κ°λ₯νλ―λ‘
scoreμ μ μ₯νλ κ° κ³λ¨ μ μμ ν©μ΄ μ΅λκ°μ΄ λλ€.
else:
total_score = [[score[i], score[i]] for i in range(n)]
# 0 -> 1 μ΄λ
total_score[1][0] += score[0]
for i in range(2, n):
total_score[i][0] += total_score[i - 1][1]
total_score[i][1] += max(total_score[i-2])
print(max(total_score[n-1]))
κ³λ¨μ΄ 2κ°λ³΄λ€ λ§λ€λ©΄ μ μ½λλ₯Ό μ€ννλ€.
2μ°¨μ λ°°μ΄ total_scoreλ₯Ό λ§λ€μ΄ κ° κ³λ¨μ μ μλ₯Ό 2κ°μ© μ μ₯νλ€.
κ° νμ 첫λ²μ§Έ μΈλ±μ€λ ν μΉΈ μ μμ μ΄λνμ λμ΄κ³ λλ²μ§Έ μΈλ±μ€λ λ μΉΈ μ μμ μ΄λνμ λμ΄λ€.
λλ²μ§Έ κ³λ¨μΈ total_score[1]μ λ μΉΈ μ μ κ³λ¨μ΄ μμΌλ―λ‘ λ°λ‘ κ³μ°ν΄μ€λ€.
ν μΉΈ μ μμ μ΄λνμ λλ 0λ² κ³λ¨κ³Ό 1λ² κ³λ¨μ ν©μ΄κ³
λ μΉΈ μ μμ μ΄λνμ λλ λ°λ₯μμ μ΄λνμ λμ΄λ―λ‘ total_score[1]μ΄κΈ° λλ¬Έμ λ°λ‘ κ³μ°νμ§ μμλ λλ€.
2λ² κ³λ¨λΆν° forλ¬Έμ μ§ννλ€.
ν μΉΈ μ μμ μ΄λνμ¬ iλ²μ§Έ κ³λ¨μ λμ°©ν λμΈ total_score[i][0]μ
μ°μλ μΈ κ³λ¨μ λ°μΌλ©΄ μλκΈ° λλ¬Έμ
ν μΉΈ μ κ³λ¨μΈ total_score[i-1]μ΄ λ μΉΈ μ μμ μ΄λν κ° μ¦, total_score[i-1][1]μ΄μ΄μΌ νλ€.
λ μΉΈ μ μμ μ΄λνμ¬ iλ²μ§Έ κ³λ¨μ λμ°©ν λμΈ total_score[i][0]μ
μ κ³λ¨μ΄ 무μμ κ±°μ³μ€λ μκ΄μκΈ° λλ¬Έμ
λ μΉΈ μ κ³λ¨μΈ total_score[i-2] μ€ ν° κ°μ λν΄μ€λ€.
μ΄λ₯Ό κ·Έλ¦ΌμΌλ‘ νννλ©΄ λ€μκ³Ό κ°λ€.
λ§μ§λ§ κ³λ¨μΈ total_score[n-1] μ€ ν° κ°μ μΆλ ₯νλ€.
'πμκ³ λ¦¬μ¦ > λ°±μ€' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[λ°±μ€/python] 1002λ² : ν°λ (0) | 2021.04.13 |
---|---|
[λ°±μ€/python] 2798λ² : λΈλμ (0) | 2021.04.13 |
[λ°±μ€/python] 11054λ² : κ°μ₯ κΈ΄ λ°μ΄ν λ λΆλΆ μμ΄ (0) | 2021.04.13 |
[λ°±μ€/pypy3] 9663λ² : N-Queen (0) | 2021.04.12 |
[λ°±μ€/python] 15650λ² : Nκ³Ό M (0) | 2021.04.11 |