[プログラマー]2 x n平屋(Python)


質問する


2 x nタイル

問題の説明


タイルを正常に配置するには、最後にㅣまたは=を入力する必要があります.

例えば、n=4の場合は、block終了時が赤、=block終了時が青の2つに分けられる.
それぞれのケースはn=3인 모든 경우에 빨간 블럭을 더한 것+24579142の総数である.n=2인 모든 경우에 파란 블럭을 더한 것の点火式を確立することができます.
もう1つの注目すべき点は、nが大きいほど格納される値が大きくなるため、A(n) = A(n-1) + A(n-2) 단, n >=3で区切られた値を格納しなければならないことである.
これは,モジュール化演算の特性が元の2つの値を加算してもよいし,他の値で割ってもよいことを決定するためである.1000000007

プールコード

def solution(n):
    dp = [1] * (n + 1)
    for i in range(2, n + 1):
        dp[i] = (dp[i - 1] + dp[i - 2]) % 1000000007
    return dp[i]