분할할 수 없도록 1칸을 채우는 경우가 2가지, 2칸을 채우는 경우가 3가지, 3칸,4칸...을 채우는 경우도 전부 2가지이므로
An=2*Sn-1+2+An-2를 풀면 된다.
dp={2,7}
dp[0]=1
n=io.read("*n")
for i=3,n,1 do
dp[i]=(3*dp[i-1]+dp[i-2]-dp[i-3])%1000000007
end
io.write(dp[n])
'코딩 > Lua' 카테고리의 다른 글
[Lua] 백준 25419 정수를 끝까지 외치자 (0) | 2023.12.14 |
---|---|
[Lua] 백준 1826 연료 채우기 (2) | 2023.12.04 |
[Lua] 백준 13913 숨바꼭질 4 (0) | 2023.02.26 |
[Lua] 백준 27440 1로 만들기 3 (0) | 2023.02.19 |
[Lua] 백준 2003 수들의 합 2 (0) | 2023.01.07 |