Post

[백준/코틀린] 9095번: 1, 2, 3 더하기

실버 3

링크

9095번: 1, 2, 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.