[백준/코틀린] 11726번: 2×n 타일링
실버 3
링크
풀이
dp[i]: 2xn 크기의 직사각형을 1x2, 2x1 타일로 채우는 방법의 수
2xn 크기의 직사각형을 만드는 방법은 두 가지입니다.
- 2x(n-1) 크기의 직사각형 뒤에 2x1 타일을 1개 붙이는 경우
- 2x(n-2) 크기의 직사각형 뒤에 1x2 타일을 2개 붙이는 경우
즉, dp[i] = dp[i - 1] + dp[i - 2]이 됩니다.
코드
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
fun main() {
val mod = 10007
val n = readln().toInt()
val dp = MutableList(1001) {
when (it) {
1 -> 1
2 -> 2
else -> 0
}
}
(3..1000).forEach {
dp[it] = (dp[it - 1] + dp[it - 2]) % mod
}
println(dp[n])
}
This post is licensed under CC BY 4.0 by the author.