FrontEnd/프로그래머스

[JS] 2*n 타일링

정_민_규 2023. 8. 14. 16:35
728x90

 

 

피보나치 수열과 유사한 형태로 답이 나오게 된다.

 

1,2,3,5,8,13 ...

 

 

단, 재귀를 활용하면 시간초과가 나오니 dp를 활용해서 풀었다!

 

function solution(n) {
    const dp = Array(n)
    dp[0] = 1
    dp[1] = 2
    
    if (n<2) return dp[n]
    
    for (let i = 2 ; i < n ; i ++){
        dp[i] = (dp[i-1] + dp[i-2]) % 1000000007
    }
    
    return dp[n-1]
}
728x90