230411 3 x n 타일링

Jongleee·2023년 4월 11일
0

TIL

목록 보기
230/737
public static int solution(int n) {
    final int MOD = 1000000007;
    int index = n / 2;
    if (n % 2 != 0)
        return 0;
    long[] dp = new long[n + 1];
    dp[1] = 3;
    dp[2] = 11;
    for (int i = 3; i <= index; i++) {
        dp[i] = (4 * dp[i - 1] % MOD - dp[i - 2] + MOD) % MOD;
    }
    return (int) dp[index];
}

점화식에 - 연산이 포함되어 있어

(4 * dp[i - 1] % MOD - dp[i - 2] + MOD) % MOD

와 같이 모듈러 연산의 분배법칙을 활용하였음

출처:https://school.programmers.co.kr/learn/courses/30/lessons/12902

0개의 댓글