Powered by AppSignal & Oban Pro
Would you like to see your link here? Contact us

Day 1: Calorie Counting

2022/day_01.livemd

Day 1: Calorie Counting

Mix.install([:kino])

input = Kino.Input.textarea("Please paste your input:")

Part 1

Run in Livebook

https://adventofcode.com/2022/day/1

data =
  input
  |> Kino.Input.read()
  |> String.split("\n")
  |> Enum.reduce([[]], fn
    "", [h | t] ->
      [[], h |> Enum.reverse() | t]

    x, [h | t] ->
      calorie = x |> String.to_integer()
      [[calorie | h] | t]
  end)
  |> Enum.reverse()
_answer1 =
  data
  |> Enum.map(&Enum.sum/1)
  |> Enum.max()

Part 2

https://adventofcode.com/2022/day/1#part2

_answer2 =
  data
  |> Enum.map(&Enum.sum/1)
  |> Enum.sort(:desc)
  |> Enum.take(3)
  |> Enum.sum()