AoC2021 Day1
Part1
Mix.install([
{:httpoison, "~> 1.8"},
{:jason, "~> 1.2"}
])
HTTPoison.start()
%HTTPoison.Response{status_code: 200, body: raw_input} =
HTTPoison.get!("https://raw.githubusercontent.com/redmar/aoc2021/main/inputs/day1.txt")
:ok
cleaned_input =
raw_input
|> String.split("\n")
|> Enum.reject(fn x -> x == "" end)
|> Enum.map(&String.to_integer/1)
# IO.inspect cleaned_input
# --- part 1
part1 =
cleaned_input
|> Enum.chunk_every(2, 1, :discard)
|> Enum.count(fn [prev, next] -> next > prev end)
IO.puts("solution part 1 = #{part1}")
# --- part 2
part2 =
cleaned_input
|> Enum.chunk_every(3, 1, :discard)
|> Enum.map(&Enum.sum/1)
|> Enum.chunk_every(2, 1, :discard)
|> Enum.count(fn [prev, next] -> next > prev end)
IO.puts("solution part 2 = #{part2}")