LoginSignup
0

posted at

updated at

Organization

Advent Of Code 2021 (Day 1: Sonar Sweep)をElixirで楽しむ

君がため惜しからざりし命さへ長くもがなと思ひけるかな

Advent Calendar 2022 102日目1の記事です。
I'm looking forward to 12/25,2022 :santa::santa_tone1::santa_tone2::santa_tone3::santa_tone4::santa_tone5:
私のAdvent Calendar 2022 一覧


はじめに

この記事は、Advent Of Code 2021 Day 1: Sonar SweepElixirで楽しんでみます。

スクリーンショット 2022-04-17 21.57.27.png

私はGitHubでログインしました。

私の回答

私の回答です。

私の回答

inputはサンプルデータです。
ログインをすると、2000個あるインプットデータがみえます。

Part 1

input = """
199
200
208
210
200
207
240
269
260
263
"""

input
|> String.split() 
|> Enum.map(&String.to_integer/1)
|> Enum.reduce({nil, 0}, fn depth, {before_depth, cnt} ->
  {depth, if(before_depth < depth, do: cnt + 1, else: cnt)}
end)
|> elem(1)

Part 2

input = """
199
200
208
210
200
207
240
269
260
263
"""

input
|> String.split() 
|> Enum.map(&String.to_integer/1)
|> Enum.chunk_every(3, 1, :discard)
|> Enum.map(&Enum.sum/1)
|> Enum.chunk_every(2, 1, :discard)
|> Enum.count(fn [left, right] -> left < right end)

It works!
Amazing!

お手本

José ValimさんがLivebookで、楽しまれている動画があります。
José Valimさんは、Elixirの作者です!

お手本

Part 1

input
|> String.split("\n", trim: true) 
|> Enum.map(&String.to_integer/1)
|> Enum.chunk_every(2, 1, :discard)
|> Enum.count(fn [left, right] -> left < right end)

Part 2

input
|> String.split("\n", trim: true) 
|> Enum.map(&String.to_integer/1)
|> Enum.chunk_every(3, 1, :discard)
|> Enum.chunk_every(2, 1, :discard)
|> Enum.count(fn [left, right] -> Enum.sum(left) < Enum.sum(right) end)

Wrapping up :lgtm::lgtm::lgtm::lgtm::lgtm:

Advent Of Code 2021 Day 1: Sonar SweepElixirで楽しんでみました。
Day 25まであるので引き続き楽しんでいきたいとおもいます。

It works!
Amazing!

自分で解いてみて、動画をみてJosé Valimさんに特別家庭教師をしてもらっている気に勝手になっています :sweat_smile:

Enjoy Elixir:bangbang::bangbang::bangbang:
$\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!


  1. @kaizen_nagoya さんの「「@e99h2121 アドベントカレンダーではありますまいか Advent Calendar 2020」の改訂版ではありますまいか Advent Calendar 2022 1日目 Most Breakthrough Generator」から着想を得て、模倣いたしました。

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
What you can do with signing up
0