こんにちは、ナナオです。

前回に引き続き競プロを実施していきたいと思います。

今回の問題は以下です。

【階段の上り方】階段の上り方 3 | レベルアップ問題集 | プログラミング学習サイト【paizaラーニング】

実装

以下のように実装しました。

前回の条件式に一つ追加しただけですね。

package main
import "fmt"
func main(){
    var n, a, b, c int
    fmt.Scan(&n, &a, &b, &c)
    dp := make([]int, n + 1)
    dp[0] = 1
    for i := 1; i <= n; i++ {
        if i >= a {
            dp[i] += dp[i - a]
        }
        if i >= b {
            dp[i] += dp[i - b]
        }
        if i >= c {
            dp[i] += dp[i - c]
        }
    }
    fmt.Println(dp[n])
}

ということで今回はこれで👍