programmers.co.kr/learn/courses/30/lessons/12902#
μ½λ©ν μ€νΈ μ°μ΅ - 3 x n νμΌλ§
programmers.co.kr
μ²μμλ λ무 μ½κ² μκ°νλ€.
μ²μ μκ°ν μ νμμ dp[i] = dp[i-2] * 3 + dp[i-4] * 2 μλ€.
νμ§λ§ μ€λ΅μ΄ λ μκ° λ¬΄μΈκ°λ₯Ό λΉΌλ¨Ήμλ λΌλ μκ°μ νκ²λμκ³ , λλ¦ μ½κ² κ·μΉμ μ°Ύμ μ μμλ€.
μ°μ nμ΄ νμμΈ κ²½μ°λ₯Ό μκ°ν΄λ³΄μ
3 x νμ => νμ μ΄λ€.
μ¦ νμμΈ κ²½μ°λ νμκ° λμ€λ―λ‘, κΈΈμ΄κ° 2μΈ νμΌλ€λ‘λ μ±μ°λ κ²μ΄ λΆκ°λ₯ν¨μ΄ μλͺ
νλ€.
μ§μμΈ κ²½μ°λ₯Ό μκ°ν΄λ³΄μ.
μ§μλ₯Ό nμ΄λΌκ³ κ°μ ν΄λ³΄μ.
μ°μ 2κ°λ‘ λ§λ€ μ μλ건 κ·Έλ €λ³΄λ©΄ 3κ°κ° λμ¨λ€.
κ·Έλ¬λ n-2κ°λ‘ λ§λ€ μ μλ μ * 3μΌλ‘ λ§λ€ μ μλ€.
κ·Έλ¦¬κ³ μ΄κ² κ·Έλ €λ³΄λ©΄ μ¬λ°λκ² λμ€λλ°
κΈΈμ΄κ° 4μΈ νμΌλ‘ λ§λ€ μ μλ μ΄μν λͺ¨μμ΄ λ κ° λμ¨λ€.
κΈΈμ΄κ° 6μΈ νμΌλ‘ λ§λ€ μ μλ μ΄μν λͺ¨μμ΄ λ κ° λμ¨λ€.
κΈΈμ΄κ° 8μΈ ..
κΈΈμ΄κ° 2*kμΈ νμΌλ‘ λ§λ€ μ μλ μ΄μν λͺ¨μμ΄ λ κ° λμ¨λ€.
μ΄μ κ·μΉμ μ°Ύμλ€.
dp[i] = dp[i-2] * 3 + for n in range(2, i+1, 2) { dp[i-n] * 2 } μμ΄ νμ€ν¨μ μ μ μλ€.
def solution(n):
MOD = 1000000007
answer = 0
if n % 2 == 1:
return 0
dp = [0 for _ in range(n+1)]
dp[0] = 1
dp[2] = 3
for i in range(4, n+1, 2):
dp[i] = (dp[i-2] * 3)
for j in range(4, i+1, 2):
dp[i] += (dp[i-j] * 2)
dp[i] %= MOD
return dp[n]
'Problem Solving π₯ > νλ‘κ·Έλλ¨Έμ€' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[νλ‘κ·Έλλ¨Έμ€] μμ κ²μ / Python (0) | 2021.04.06 |
---|---|
[νλ‘κ·Έλλ¨Έμ€] μΏ ν€ κ΅¬μ / νμ΄μ¬ (0) | 2021.02.22 |
[νλ‘κ·Έλλ¨Έμ€] μ§ν μ΄λ / νμ΄μ¬ / MST(μ΅μμ μ₯νΈλ¦¬) (0) | 2021.02.14 |
[νλ‘κ·Έλλ¨Έμ€] νλ Έμ΄μ ν / νμ΄μ¬ (0) | 2021.02.12 |
[νλ‘κ·Έλλ¨Έμ€] κΈΈ μ°ΎκΈ° κ²μ / νμ΄μ¬ / μλ£κ΅¬μ‘°(νΈλ¦¬) (0) | 2021.02.12 |