[μ½λνΈλ¦¬ μ±λ¦°μ§] 8μ£Όμ°¨ (10/25-10/30), dp
μ½λνΈλ¦¬ μ±λ¦°μ§ λ§μ§λ§μ£Όλ₯Ό κ°νλ₯Έ μμΉκ³‘μ μΌλ‘ λ§λ¬΄λ¦¬νκ² λμ΄μ λ무 κΈ°λΆμ΄ μ’λ€^.^
λ§μ§λ§μΌλ‘ νΌ λ¬Έμ κ° μ μ λ²μ£Όμ λͺ» νΌ λ¬Έμ μ νμ΄μ΄μ μ΄μ§ λ¨λ¦¬λ λ§μμΌλ‘ νμλλ°, μ λ²μ λͺ» νμλ μμΈμ μ°Ύμ κ² κ°μμ νλ©΄μλ κΈ°λΆμ΄ μ’μλ€.
λ‘μ§μ μμλ₯Ό λ°κΏμ νλ©΄μ μΌλΆ ν μ€νΈμΌμ΄μ€μμ νλ¦¬κ² λμ€κ² λλ κ² κ°λ€.
κ·Έλμ λ‘μ§μ λ€μ λ°κΏλ³΄λ μ΄λ² λ¬Έμ κ° ν΄κ²°λλ κ²μ λ³Ό μ μμλ€.
μμ μ λ²μ£Όμ νν΄λ λλ°μ μ§μ μν λ°λμμ΄μλ..?νΈνΈ
μ€λ νκ°λ₯Ό νκ³ λλ dpμ λν νμ΅μ΄ νμνλ€λ μ½λ©νΈκ° λμ€κ² λλ€.
dpλ νμ μ½ν μμ νμ λ¬Έμ λ‘ λμ€λ μ νμ΄μλλ° μ΄λ² κΈ°νμ 곡λΆν μ μμ΄μ λ무 μ’μλ€.
κ·Έλμ λ°λ‘ νΈλ€λ₯ κ°λ 곡λΆλ₯Ό μμνλ€.
DP (Dynamic Programming)
ν° λ¬Έμ μ λν λ΅μ μ»κΈ° μν΄ λμΌν λ¬Έμ μ΄μ§λ§ ν¬κΈ°κ° λ μμ λ¬Έμ λ€μ λ¨Όμ ν΄κ²°ν λ€, κ·Έ κ²°κ³Όλ€μ μ΄μ©ν΄ ν° λ¬Έμ λ₯Ό λΉκ΅μ κ°λ¨νκ² ν΄κ²°νλ κΈ°λ²
μΌλ¨, DPλ μ νμμ μ°Ύμλ΄λ κ²μ΄ μ€μνλ€
νμλ λ¬Έμ
μ΄ λ¬Έμ λ dpλ₯Ό μ΄ν΄νκΈ°μ λ± μ’μ λ¬Έμ μΈ κ² κ°μμ κ³ λ₯΄κ² λμλ€.
nμΈ΅ λμ΄μ κ³λ¨μ μ€λ₯΄λ €κ³ ν©λλ€. ν λ²μ μ νν 2κ³λ¨ νΉμ 3κ³λ¨ λ¨μλ‘λ§ μ¬λΌκ° μ μλ€κ³ νμ λ, nμΈ΅ λμ΄μ κ³λ¨μ μ¬λΌκ°κΈ° μν μλ‘ λ€λ₯Έ λ°©λ²μ μλ₯Ό ꡬνλ νλ‘κ·Έλ¨μ μμ±ν΄λ³΄μΈμ. λ¨, νμ 2κ³λ¨ νΉμ 3κ³λ¨ λ¨μλ‘λ§ μ¬λΌκ° μ μκΈ°μ nμΈ΅κΉμ§ μ νν 1κ³λ¨μ΄ λ¨μ μν©μμλ nμΈ΅μΌλ‘ μ¬λΌκ° μ μλ λ°©λ²μ΄ μ ν μμμ μ μν©λλ€.
ν΄λΉ λ²μ§Έ μΈ΅μ λλ¬νκΈ° μν΄μλ
1) 2κ³λ¨μ© μ€λ₯΄κ±°λ
2) 3κ³λ¨μ© μ€λ₯΄κΈ°
λ°λΌμ μ νμμ dp[i] = dp[i - 2] + dp[i - 3]
dp[i-2]λ 2κ³λ¨ μ , dp[i-3]μ 3κ³λ¨ μ μΌλ‘ μκ°νλ©΄ λλ€.
μ΄ μ νμμΌλ‘ κ³μ°νλ©΄ nμΈ΅κΉμ§ μ¬λΌκ°λ λ°©λ²μ μ μ μλ€.
μ΄ μ νμμ μ΄μ©ν΄μ μμ±ν μ½λκ° μλ μ½λμ΄λ€.
MAX_N = 1000
MOD = 10007
# λ³μ μ μΈ λ° μ
λ ₯:
n = int(input())
dp = [0] * (MAX_N + 1)
# μ΄κΈ° 쑰건 μ€μ
dp[0] = 1
dp[1] = 0
dp[2] = 1
dp[3] = 1
# μ νμμ λ°λΌ dpκ° μ±μ°κΈ°
# dp[i] = dp[i - 2] + dp[i - 3]
for i in range(4, n + 1):
dp[i] = (dp[i - 2] + dp[i - 3]) % MOD
print(dp[n])
μ±λ¦°μ§ νκΈ°
κ°λ°μ μ€λΉλ₯Ό νλ€λ©΄ λμ μ μλ μ½ν λ₯Ό μ½λνΈλ¦¬ μ±λ¦°μ§λ‘ ν¨κ» νλ©΄μ λ무 μ’μλ€.
κ·Έ μ μλ 곡λΆλ₯Ό μν 건 μλμ§λ§, λκ° μ λλ‘ νκ³ μλμ§ λλΆν° 곡λΆν΄μΌνλμ§ κ³ λ―Όμ΄ λ§μλλ° μ½λνΈλ¦¬λ κ·Έλ° κ³ λ―Όμ νλ λμκ² κΈΈμ λ΄μ£Όκ³ 곡λΆνλ©΄ ν μ μλ€λ μμ κ°μ μ£Όμλ€.
μ±λ¦°μ§ λλΆμ μ’ λ μ΅κ΄νν μ μμκ³ , 무μμ νκΈ° μ«μ΄νλ μ½ν λ¬Έμ νκΈ°λ₯Ό μ¬λ°κ² ν μ μκ² λλ€
μ±λ¦°μ§κ° λλκ³ λ μμΌλ‘ κ³μ μκ³ λ¦¬μ¦ κ³΅λΆνλ©΄μ λ¬Έμ λ₯Ό κΎΈμ€ν νμ΄μΌκ² λ€
μ΄ ν μ€νΈ κ²°κ³Όκ° λ§νκΈΈ μ΄λ κ² κ³΅λΆνλ©΄ μ λλλ©΄ μ½ν λ§μ€ν°κ° λμ΄μκ² λ€κ³ νλκΉ~ μ΄μ¬ν κΎΈμ€ν! 곡λΆν΄μΌκ² λ€!