산 모양 타일링 (프로그래머스, 2024 카카오 겨울 인턴십, Python)

김민재·2024년 1월 5일
0
def solution(N, tops):
    MOD = 10007
    dp = {}
    dp[0] = [3, 1] if tops[0]==1 else [2, 1]
    for i in range(1, N):
        if tops[i]==1:
            dp[i] = [
                (dp[i-1][0]*3 + dp[i-1][1]*2)%MOD,
                (dp[i-1][0]*1 + dp[i-1][1]*1)%MOD
                ]
        else:
            dp[i] = [
                (dp[i-1][0]*2 + dp[i-1][1]*1)%MOD,
                (dp[i-1][0]*1 + dp[i-1][1]*1)%MOD
                ]
    return sum(dp[N-1])%MOD

0개의 댓글