[Boot camp for Beginners] B - Coins [Rust]
概要
AtCoder Problems: Boot camp for Beginners をRustで解いてみる
- 今回の問題:B - Coins
- 書いたコード:提出 #48659040 - AtCoder Beginner Contest 087
学んだことmemo
- A, B, C が50ということは最大でも組み合わせは、50 * 50 * 50 = 125,000 通り
- このぐらいなら全パターン計算して合計金額があってるものだけ取り出せば良さそう
- Xが50の倍数固定なので、全ての単価は50で割っておけば計算多少は少なくなるか...? (誤差な気はする)
- どう全パターンを作るか
vec![(10, a), (2, b), (1, c)]
の unit と 枚数の tuple を作っておく- tuple毎に、
(0..=*n).map(|i| i * unit)
でその unit を組み合わせた金額のvec
ができる - あとはvecを fold で組み合わせて最終的な合計金額の vec を作ればOK
- 最後に
x/50
と同一かどうかでfilterしてcountすれば終了