[백준/코틀린] 9095번: 1, 2, 3 더하기
실버 3
링크
풀이
dp[i]: 정수 i를 1, 2, 3의 합으로 나타내는 방법의 수
정수 i를 만드는 방법은 세 가지로 나눌 수 있습니다.
- i - 1을 만든 후 1을 더하는 경우
- i - 2를 만든 후 2를 더하는 경우
- i - 3을 만든 후 3을 더하는 경우
즉, dp[i] = dp[i - 1] + dp[i - 2] + dp[i - 3]이 됩니다.
코드
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
fun main() {
val dp = MutableList(12) {
when (it) {
1 -> 1
2 -> 2
3 -> 4
else -> 0
}
}
(4..10).forEach {
dp[it] = dp[it - 1] + dp[it - 2] + dp[it - 3]
}
repeat(readln().toInt()) {
val n = readln().toInt()
println(dp[n])
}
}
This post is licensed under CC BY 4.0 by the author.