Advent of code - Day 1
Méthode 1
l =
File.read!("inputs/day1.txt")
|> String.trim()
|> String.split("\n\n")
|> Enum.map(fn s ->
String.split(s, "\n")
|> Enum.map(&String.to_integer/1)
|> Enum.sum()
end)
Enum.max(l)
l
|> Enum.sort()
|> Enum.take(-3)
|> Enum.sum()
Methode 2
File.read!("inputs/day1.txt")
|> String.split("\n")
|> Enum.reduce(%{m: 0, c: 0}, fn
"", %{m: m, c: c} when m < c -> %{m: c, c: 0}
"", acc -> Map.put(acc, :c, 0)
x, acc -> Map.update!(acc, :c, &(&1 + String.to_integer(x)))
end)
|> Map.get(:m)
File.read!("inputs/day1.txt")
|> String.split("\n")
|> Enum.reduce(%{m: [], c: 0}, fn
"", %{m: m, c: c} -> %{m: [c | m] |> Enum.sort() |> Enum.take(-3), c: 0}
x, acc -> Map.update!(acc, :c, &(&1 + String.to_integer(x)))
end)
|> Map.get(:m)
|> Enum.sum()