(備忘録)問題解決のための「アルゴリズム数学」〜 2
問題
自分の回答
各値段の数をcountし、最後に500円になるパターンを積の法則を利用して算出している。 countを4回やっている部分どうにかしたいけど思い付かなかった
gets price = gets.split.map(&:to_i) a = price.count(100) b = price.count(200) c = price.count(300) d = price.count(400) puts (a * d) + (b * c)
他の方の回答
tallyはself に含まれる要素を数え上げた結果を Hash で返している。(何回か見ている気がする)
Enumerable#tally (Ruby 3.1 リファレンスマニュアル)
dd
は全読みをしているらしい
AtCoder に登録したら解くべき精選過去問 10 問を Ruby で解いてみた (しえる版) - Qiita
h=`dd`.split.tally p (h["100"]||0)*(h["400"]||0)+(h["200"]||0)*(h["300"]||0)