defmodule BinaryBoarding do
def parse(input) do
input
|> String.replace(~r/[F|L]/, "0")
|> String.replace(~r/[B|R]/, "1")
|> String.split_at(7)
|> Tuple.to_list()
|> Enum.map(&String.to_integer(&1, 2))
end
def calc_id([row, column]) do
row * 8 + column
end
end
boarding_passes =
File.read!("input")
|> String.split("\n", trim: true)
|> Enum.map(&BinaryBoarding.parse/1)
seats =
boarding_passes
|> Enum.map(&BinaryBoarding.calc_id/1)
seats |> Enum.max() |> IO.inspect(label: "Part 1")
for id <- 0..1023,
Enum.member?(seats, id) == false,
(Enum.member?(seats, id - 1) && Enum.member?(seats, id + 1)) == true do
IO.inspect(id, label: "Part 2")
end