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

Day 4

aoc/2021/elixir/day4.livemd

Day 4

Binary Diagnostic

https://adventofcode.com/2021/day/4

https://adventofcode.com/2021/day/4/input

Input

raw_input =
  Stream.iterate("", fn _ -> IO.gets("input") end)
  |> Stream.take_while(&(&1 != :eof))
  |> Stream.map(&String.trim/1)
  |> Stream.reject(&(&1 == ""))
  |> Enum.to_list()

[raw_draw_numbers | raw_boards] = raw_input

draw_numbers =
  raw_draw_numbers
  |> String.split(",")
  |> Enum.map(&String.to_integer/1)

boards =
  raw_boards
  |> Enum.map(fn line ->
    String.split(line, " ")
    |> Enum.reject(&(&1 == ""))
    |> Enum.map(&String.to_integer/1)
  end)
  |> Enum.chunk_every(5)

{draw_numbers, boards}

Part 1

Part 2