Skip to content

Instantly share code, notes, and snippets.

@rugyoga
Last active December 6, 2023 21:37
Show Gist options
  • Save rugyoga/48cc9c5622f208a44b909188b4c81b18 to your computer and use it in GitHub Desktop.
Save rugyoga/48cc9c5622f208a44b909188b4c81b18 to your computer and use it in GitHub Desktop.
Advent of code 2023 Day 6
import AOC
aoc 2023, 6 do
def p1(input) do
input
|> parse()
|> Enum.map(fn l -> Enum.map(l , &String.to_integer/1) end)
|> Enum.zip()
|> Enum.map(&possibilities/1)
|> Enum.product()
end
def possibilities({time, record}), do: Enum.count(0..time, &(&1 * (time-&1) > record))
def parse(input) do
input
|> String.split("\n")
|> Enum.map(&(&1 |> String.split(":") |> Enum.at(1) |> String.split(" ", trim: true)))
end
def p2(input) do
input
|> parse()
|> Enum.map(&(&1 |> Enum.join("") |> String.to_integer()))
|> then(fn [a, b] -> possibilities({a, b}) end)
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment