import AOC aoc 2021, 1 do def input_list, do: input_stream() |> Stream.map(&String.to_integer/1) |> Enum.to_list() def p1 do input_list = input_list() input_list_ = Enum.drop(input_list, 1) Enum.zip_reduce( input_list, input_list_, 0, &if(&1 < &2, do: &3 + 1, else: &3) ) end def p2 do input_list() |> window_increases() end defp window_increases(list, acc \\ 0) defp window_increases([a, b, c, d | _] = list, acc) do acc = if a + b + c < b + c + d, do: acc + 1, else: acc window_increases(Enum.drop(list, 1), acc) end defp window_increases(_, acc), do: acc end