[프로그래머스] 산 모양 타일링

이재윤·2025년 1월 27일

https://school.programmers.co.kr/learn/courses/30/lessons/150369

1) 코드

def solution(n, tops):
    
    MOD = 10007
    a = [0]*(n+1)
    b = [0]*(n+1)
    
    a[0] = 0
    b[0] = 1 
    
    for i in range(1, n+1):
        if tops[i-1] == 1:
            a[i] = (a[i-1] + b[i-1]) % MOD
            b[i] = (2*a[i-1]+3*b[i-1]) % MOD 
        else:
            a[i] = (a[i-1] + b[i-1]) % MOD
            b[i] = (a[i-1] + 2*b[i-1]) % MOD
    
    return (a[n]+b[n]) % MOD

2) 해설

  • 타일을 놓을 수 있는 4가지 케이스를 나눠서 점화식을 세워야 하는 문제이다.
    -> 한 번 다시 복습해서 풀어봐야겠다

0개의 댓글