あらざらむこの世のほかの思ひ出に今ひとたぴのあふこともがな
Advent Calendar 2022 108日目1の記事です。
I'm looking forward to 12/25,2022
私のAdvent Calendar 2022 一覧。
はじめに
この記事は、Advent Of Code 2021 Day 7: The Treachery of WhalesをElixirで楽しんでみます。
私はGitHubでログインしました。
私の回答
私の回答です。
解けるには解けましたが、効率が悪いし、メモリをたくさん使っているようにおもいます。
私の回答
input = "3,4,3,1,2"
Part 1
list = input |> String.split(",", trim: true) |> Enum.map(&String.to_integer/1)
count = Enum.count(list)
max = Enum.max(list)
0..max |> Enum.reduce(count * max, fn pos, min_fuel ->
{largers, smallers} = Enum.split_with(list, & &1 >= pos)
fuel = Enum.sum(largers) - pos * Enum.count(largers) + pos * Enum.count(smallers) - Enum.sum(smallers)
if fuel < min_fuel, do: fuel, else: min_fuel
end)
Part 2
0..max |> Enum.reduce(Enum.sum(1..max) * count, fn pos, min_fuel ->
fuel = Enum.reduce(list, 0, fn i, acc -> Enum.sum(0..abs(i - pos)) + acc end)
if fuel < min_fuel, do: fuel, else: min_fuel
end)
It works!
Amazing!
お手本
Day 7のお手本(José Valimさんの動画)はありませんでした
Day 8はまた再びありました。
Wrapping up
Advent Of Code 2021 Day 7: The Treachery of WhalesをElixirで楽しんでみました。
Day 25まであるので引き続き楽しんでいきたいとおもいます。
It works!
Amazing!
自分で解いてみて、なんだかイマイチだなあとおもいながら、動画をみることでJosé Valimさんに特別家庭教師をしてもらっている気に勝手になっています 。
海綿が水を吸うように、Elixirのイケている書き方を吸収しています。
伸びしろしかありません。
Enjoy Elixir
$\huge{Enjoy\ Elixir🚀}$
以上です。
I organize autoracex.
And I take part in NervesJP, fukuoka.ex, EDI, tokyo.ex, Pelemay.
I hope someday you'll join us.
We Are The Alchemists, my friends!
We appreciate this shoutout, Torifuku! pic.twitter.com/dThmJg4CYN
— ClickUp (@clickup) April 11, 2022