package main import "fmt" func main() { var n int _, _ = fmt.Scan(&n) // n以下のコインを洗い出す coins := make([]int, 0) for i := 1; i < n; i++ { c := i * (i + 1) / 2 if c <= n { coins = append(coins, c) } else { break } } // fmt.Println(coins) ans := 1 n -= coins[len(coins)-1] for n > 0 { last := coins[0] for _, c := range coins { if c > n { break } last = c } n -= last ans++ // fmt.Println(ans, last, n) } fmt.Println(ans) }