Powered by AppSignal & Oban Pro

Day 2: Rock Paper Scissors

Day 2: Rock Paper Scissors.livemd

Day 2: Rock Paper Scissors

Section

input = """
C Y
C Y
B Y
A Z
B Z
A X
A Y
A Y
A X
A Y
B Y
A Y
B Y
B Y
B Z
B Z
B Z
B Z
A Y
B Z
A Y
B X
B Y
B X
A X
A X
B Z
A X
A X
B Z
B Z
B Y
B Z
B Z
B Z
B Y
A X
A X
B Z
A X
B X
B X
C Y
B Z
C X
A X
A Y
B Y
A Y
B X
A X
B Y
B Z
B Z
B Y
B Z
C Z
B X
B X
B Z
B Z
B Z
B Z
A Y
B X
A X
C X
B Y
B Z
A Y
B Z
B Z
B Y
B Y
B Z
B Y
B Z
A X
B X
B X
A X
A X
B Z
B Z
B Z
B Z
B Y
B X
B Z
A X
A Y
B Z
A Y
B Z
B Y
B Z
A X
B Y
A Y
B Z
A Z
A Y
A Y
C Y
B Z
B X
A Z
B Z
A X
B Z
A Z
B Z
A X
B Y
A X
B Y
B Z
B X
B X
B Z
B Z
B Z
A X
B Z
A X
B X
B Z
A X
C Z
B Z
B Z
B Y
B Y
B Y
B Z
B Z
A Y
B Z
B Z
C Y
C Z
A X
B Z
B X
B Z
B Z
B Y
A X
B Z
B Y
A Z
B Z
A X
A X
B Y
A Y
B Z
B Z
B X
B Y
A X
A Y
B X
C Z
A Y
B Z
B Z
B Z
A Z
C Y
B Y
B Y
B Z
C Y
B Y
B X
B X
B Z
C Z
A X
B Z
B Z
B Z
B Z
B X
B X
A X
A Z
A Z
A X
C Y
B X
A X
A Y
A X
B X
A Y
B Z
B Z
A Y
A X
B Y
B Z
B Z
A X
A Z
B Z
B X
A X
B Z
B Y
A Y
A Z
B X
A Y
B Z
A Z
B Z
A Y
B Z
B X
B Y
A Y
B Z
B Z
A X
A X
B Y
B Z
A X
B Z
B Z
B Z
B Z
B Z
A Z
B Z
B Z
B X
A Y
C X
B Z
B Y
B Y
B Z
B Z
B Z
B Y
B X
B Y
C X
B Z
A Z
A Y
C X
A X
B X
A X
B X
A Y
B Z
A Y
A Y
B Z
B X
B Z
A Y
B Z
B X
C Z
C X
C Z
B Y
B X
B Z
B Z
B Y
B Z
B Y
B Z
A X
B X
B Z
A X
B Z
B Y
B Z
A X
B Y
C Y
A Z
B Z
C Z
A Y
B Z
A Y
A Z
B Y
A X
A X
B Z
B Z
B Z
A Y
B Z
A Z
B Z
A Y
A Z
B Y
C Z
B Z
A Z
B X
B Z
B Y
B Z
A Z
A Z
B Z
B X
C Z
B X
B Z
B Y
A X
B Z
A X
B X
B Z
B Z
A X
B X
C X
C X
B X
B Y
B Z
B X
B Y
B Y
B Z
A Z
B Z
C X
A Y
C X
B Z
A Y
B Z
B Y
B Z
B X
A X
B X
B Z
A Y
A Y
B Z
B Z
B Z
A Y
B Z
B X
C X
B Z
B Z
C Y
B Z
C Y
B Z
C Y
C X
B Z
C Y
A Y
A Y
C Z
B Z
B X
B Z
B X
C Z
B Z
A Z
B Z
C Y
B Z
A X
A Y
B Y
B Y
B Z
A Y
B X
B Z
B Z
A Z
B X
A Y
A Y
B Z
B Z
B Z
C X
A Z
B X
C Z
B Y
B Z
B X
A Y
B Z
A X
B X
B Y
A Y
B Z
B Z
B Y
A Z
B Z
A X
B Y
A Y
A X
A Y
A X
A X
B X
B Y
B X
B Y
B Z
B Y
B X
A X
B Z
A Z
A X
B Z
B Y
A X
B Y
A X
B X
C Y
B X
B X
B X
C Y
B X
B Y
B Y
B Y
B Y
B X
A Y
C Y
B Z
B Z
B X
B Z
C Y
B Y
B Z
B Z
B Y
B Z
A X
B X
B Y
A X
C Y
B Z
A Y
B Z
B Z
B Z
A X
B Y
B Z
B Y
B Z
A X
B Z
A X
B Y
B Y
B X
B X
A Y
B Z
C Y
A X
A X
B X
B Z
B X
B X
B Z
B Z
A X
B X
B Z
A Z
B Y
A X
B Z
C Y
B Z
B X
B Z
B Z
A Y
A Y
B Z
B X
B Y
B Z
A Y
A Y
B X
B X
C X
B Z
C Z
B X
A Y
B Z
A Z
B Y
A Y
B Z
B X
B X
A Y
B Z
B Y
A X
B Y
B Y
B Y
B X
B Y
B Z
B Y
B Y
A X
C Z
B Z
B Z
A Z
B Z
B Z
A X
B X
A Y
A X
B X
C X
B X
B Z
B Y
A Z
A Y
B Y
B Z
B X
B X
B Z
B Z
B Y
A X
B Z
A Y
A X
B Y
B Z
B Z
B X
A X
A Y
C X
A Y
B Z
B Y
B Z
B Z
C Z
B Z
B X
A X
C Y
B X
B Z
A Z
A X
A Y
B Z
B Z
A Y
A Y
B X
A Y
A Y
B Z
A Y
B Y
B Z
A Y
A Z
B X
B X
B Y
B Z
B Z
A X
B X
C X
B Y
A Y
A X
A X
A X
B Y
A X
A Z
A Y
B X
A Y
B Z
C X
B X
B X
B Z
B X
B X
B Z
A X
B Z
B X
B Z
A Y
B Y
B Z
B Y
B Z
B Z
A X
B Z
A Y
C Z
A Y
B Z
A Y
B X
B Z
B X
C Y
A X
B Z
B Y
A X
A X
B X
B Z
A Z
B Z
B X
B X
B X
B Z
B Z
B Y
B X
B X
A X
B Z
B X
A X
A X
A X
B X
B Z
A Z
B X
B Y
B Y
B Z
B Z
C Z
A Y
A X
B Y
B X
B Z
B X
A X
B Z
B Z
B Y
B Z
B X
B Z
B Z
B X
B X
A X
A X
B X
B Z
B Z
C X
C X
B Z
B Z
B X
B Z
B Y
B X
A X
B Y
A Y
A X
B Z
B Z
C X
B Y
B Z
B Z
B X
B Z
B Z
C Z
B Z
B Y
B Z
B X
A X
B X
B Z
B Z
A Y
B Z
B Z
B Z
B Z
A X
B Z
B Z
B X
B Y
B Y
B Z
A X
B Z
B Y
B X
A X
B X
B Z
B Z
B Z
B X
B Z
B Z
B Z
A Y
B Z
C X
B Y
B Y
B Y
A Y
B Z
B Z
A X
C Z
B Z
B Z
B Z
B X
B Z
A Z
B Z
B Z
B Z
A Z
B Z
C Y
B X
A X
A Y
B Z
B Z
A Z
B Z
B X
A Z
B Y
B Z
B X
B Z
B X
B Y
B Z
A X
B Z
B Z
A Y
B X
B X
B X
A Z
C X
A Z
B Z
B Z
B Z
B X
A Y
C X
A Z
A Y
B X
B Z
B X
B Z
B Y
A Y
B X
C X
A Y
C Z
A X
B Z
B Z
A Z
B X
B Y
B Z
A Y
B Y
A X
A X
C Y
A Y
B X
A X
B Y
B X
B Y
A Y
A X
C Y
B Y
B Y
B Z
B Y
B X
B Z
B Z
B X
A X
B Z
B Z
B Z
B X
B Z
B X
B Z
B Z
B Y
B Y
B X
A X
B Z
B Y
A Y
B Z
B X
B Z
B Z
A Z
B Z
A Y
B Z
A X
B Z
B Z
A Y
B Z
A X
B Z
A Y
A Y
A Z
B X
B Z
B Y
A Z
C Z
B Z
A X
A X
B X
A Z
B X
B X
B Z
C X
B Z
B Z
B Z
B Z
B X
A Z
A Y
B Z
B Y
C Z
B Y
B Z
A Y
B X
B X
B Z
A X
A Y
B Z
B X
B Y
A Y
C Y
C Y
B Z
A Y
B Y
A Y
B Z
B Z
A X
B X
A X
B X
A Y
A X
B Z
A X
B Z
B X
B Z
B X
B X
A X
A Y
B Z
B X
B X
A X
A Y
A X
B Y
B Z
B Z
B Z
B Z
B Z
B X
B Y
A Y
B X
B Z
A Y
B X
A X
B Z
C X
B Y
A Y
A X
A X
B X
B X
B Z
B Z
B Z
B X
B Y
B X
B Z
B X
B Y
B X
B Z
B X
B Y
B X
B Z
B Z
B Z
A X
C X
C Y
A Y
B X
B X
A Y
B Z
B X
B Z
B X
B X
C X
B Z
B Z
B Y
A Z
A Z
C X
B X
C Y
B Z
C X
B Z
A Y
C Z
B X
B Y
A Y
B Y
B X
B Z
A Y
A Z
C X
B Z
A X
B X
B Z
C Z
A Y
B Z
B Z
A X
A X
B Z
B Y
C Z
B Z
B X
B Z
A X
A X
B Y
A X
B X
A Y
B Z
A Y
B Z
A Y
B Z
A X
B Y
B Z
B Z
B Z
A X
A X
B X
B Z
A X
B Z
A X
A X
B Z
B Z
B Z
B X
B Y
B Z
B Z
B X
B Z
B Y
B Z
C Y
B X
C Z
B Z
B Z
A Y
B Z
B X
A Y
B Z
B X
B Z
B Z
B Y
B Z
A Z
A Y
B Z
B Z
B Y
A Y
B Z
A X
B X
A Z
A X
B X
B Z
B X
B Z
B Z
B Y
B Y
B Z
B Y
B Z
B Z
A X
B X
B Y
B Y
C Z
A X
B Y
A Y
B Z
B Z
B Z
C X
B X
A Z
B Y
A X
C X
B Z
B Z
B Z
B Y
A Y
A Y
B Y
B Z
B Z
B Z
C X
A X
B Z
A Y
B X
B Z
B Z
B Z
B Z
B X
B Y
B Z
B Z
A Y
C X
A X
B Z
B Z
A Y
A Y
B Z
A Y
B Y
A X
B Z
B Z
A Y
B Z
B Z
A X
A X
B X
B Z
B Z
A X
B Z
B Z
C Y
B Z
A X
B Z
A X
B Z
A X
B X
A X
A Y
B Z
B X
A X
B Z
A X
A Z
B Z
B Z
B Z
A Y
B X
A X
B Y
A Y
B Z
B Z
B X
B Z
B X
B X
A X
B Z
A Y
A X
B X
A Z
B X
B Y
B Z
B X
B X
B Z
C X
A X
B Z
B Y
C Z
B Z
A Z
A Z
A X
A Y
B Z
B Z
B X
A Z
B Z
B Z
B X
B Y
B X
B Z
B X
B Z
A Y
A X
B Z
B X
B Y
B Z
B Z
B Z
B Z
C X
C X
B Z
B X
B Z
B Z
B Z
B X
B Z
B Z
B Z
B X
B Z
B Z
B Z
C Y
B Z
B Y
B Z
A Z
A Y
B Z
A Y
C X
A X
B X
A Y
B Z
A Y
B Z
B Y
B Z
B Z
C Y
B Y
B Z
B Z
B X
B Y
B Z
B Y
B Z
B X
B Y
B Z
B Z
B Z
B Y
B Y
B Z
B Z
C X
B Z
A Y
B Z
B Z
B Y
B Y
B Z
B Z
A Y
B Z
A Z
C X
A Y
A Y
A X
B Z
A X
C Y
A Z
C Y
C X
B Z
A X
A Y
B Z
B Z
B Z
B Z
B Y
A Z
A Y
B Y
A Y
A Z
B X
B Z
B Z
A X
C Y
B Z
B X
C X
A Z
B Z
B X
B Y
A X
A X
B Z
C X
B Z
B Z
B X
B Z
B Z
B Z
A X
B Z
B Y
B Z
B Z
B Y
B X
A X
B Z
A X
A X
B Y
B Z
B X
A Y
C X
B Y
A X
A X
A X
C Y
B X
C Z
A X
B Z
A Z
B Z
A X
A Y
B Z
A X
B X
A Y
A X
A Y
B X
B Y
B Z
B Y
C X
C Y
B Z
B Y
B Z
A X
C Z
B Z
A X
B X
A X
B X
B Z
B X
B Z
B Z
B Z
A X
A X
B Z
B X
B Z
B Z
B Z
A X
B Z
B X
A X
C Z
A Y
B Z
A Y
B Z
B Z
B Z
C Z
B Z
B Z
A X
B X
A X
B X
A X
B Z
B Z
B X
B Z
A X
A Y
A Y
A Y
B Z
B Z
B Z
B Z
A X
B Z
B Z
B Y
B Z
A Z
B Z
A Y
B Y
B Y
C Y
B X
B Z
B Y
B Z
B Y
B Z
B Z
A Y
B X
A Z
B Z
A X
B Y
A X
B Z
B Y
A X
B X
B Z
B Z
B Z
A Y
A Y
A X
A Y
A Y
B X
B Z
B Y
B Y
B X
B Y
B X
B X
B X
B Z
B Z
B Z
A Y
A Z
B Y
C X
B X
B Z
C Y
B Z
C Y
B Z
B Z
B Z
B X
A X
B Z
B Z
A X
B Z
B Z
B Z
B Z
B Z
B Z
B X
A X
A Y
B Y
B Z
B Y
B X
A Z
A X
B X
B Y
B Z
B Z
B Z
B X
C X
B X
A Z
A X
A Y
B Z
B Z
A X
B Z
A Y
B X
B Z
B Y
B Y
A X
B X
B Z
B Z
B Z
B Z
B Y
A Z
A Y
B X
A X
B Y
B Z
C Y
B Z
B Z
B X
A Z
A Y
B Y
B Z
A Y
B Y
A Y
A X
A Y
B Y
C X
C Z
B X
A Z
A X
B Y
B X
A X
B Z
A Y
A Z
B Z
B Z
B Z
A X
B Z
B Y
B Z
A X
A Y
B Z
B X
C X
B Z
A Y
B Z
B Z
B X
B Z
B Z
A Y
A X
B Z
C Y
A Y
B Y
B Z
A X
B Z
B Z
B Z
B Z
C X
B Y
B Z
B X
B Z
B Z
B Z
B Z
B Z
B Y
A X
B Y
A Y
A X
A X
B Z
B Z
B Z
C X
B X
B Z
A X
A X
B Y
A X
B Z
B Z
B X
B Y
B Y
B Y
A Y
A Y
A X
A X
B Z
B Y
B Y
B X
B Y
B Z
A Z
B Z
A Z
B X
B Y
C Y
B X
B X
A X
A X
A X
A X
B Z
B Z
A Z
B X
B X
B X
B X
B X
B Z
B Z
B Z
B Z
B Z
B Y
B Z
B Z
A Y
A Z
C Y
B Y
A X
B Z
B X
A Y
B Y
A Y
C Z
A X
A Y
B X
B X
C Z
B Y
A Y
A Y
A X
B X
A X
B X
A Y
B Z
B Z
A Z
B X
B Z
B Z
B Y
A Y
B Z
B Y
B Z
B Z
B Z
C X
B Y
A Y
B Z
A Y
A Y
A X
B X
B Y
C Y
C X
B Z
B Z
B Z
A Y
A Z
B Y
B X
B X
B Y
B Z
B Z
A Y
B Y
B Z
B Z
B Z
A X
C Y
B Z
A Z
C Z
B X
B Y
B Z
A Z
A X
B X
A X
C X
B Z
A X
B Y
C Y
B Y
B Z
B X
A Y
B Z
B Z
B Z
A X
B Z
B Z
B Z
B Z
A X
B Z
B X
B X
B Z
C X
A Y
B Z
B X
B Z
B Y
B Z
B Y
C Y
A X
B Y
B Z
B Z
B X
B Z
A X
B Z
A X
B Y
B Z
A X
B Z
B X
A Z
B Z
C X
B Z
B Y
B Y
B Y
B Z
B X
B X
A X
A X
B Z
B Z
A X
A X
A Z
A Y
C Z
B Z
B Y
C X
B X
B Y
B Y
A Y
B Z
B Z
B Y
C Y
B Z
A Y
B Z
B Z
B Z
B Z
A Y
B Z
B Z
B Z
A X
B X
A Y
B Y
B Z
B Z
B Z
A Y
B Z
B Z
B Z
B Y
B Y
B X
B X
B Y
C Z
B X
B Y
C Y
A Y
B Z
A Z
B Z
A Y
B X
B Z
B X
C Z
A Y
B X
B Z
A X
A X
B Z
B Z
B Y
B Z
C Y
C X
B Z
B Z
A X
B X
A Y
B Y
B Y
C Z
A X
B X
B Z
A Y
B Z
C X
B Z
A Z
C X
A Y
A Z
B Z
A Y
A X
B Z
B Y
B Z
B X
B Z
A X
B Z
A Z
B Z
B Z
B Y
A X
B Z
B X
B Y
B Y
A Y
A X
C Z
B Y
C Z
A X
B X
B Z
B X
C X
B Z
B Z
A X
A Y
A Z
A Z
B Z
B Z
A X
B Z
B Y
A X
A Y
B Z
B X
A Y
B Z
B Y
B X
B Z
A Z
B Y
A Y
A X
B Z
B Z
B Z
B Z
A X
B Y
B Z
B Z
B Z
A Z
B Y
A X
C Y
B Z
B Z
B Y
B X
B Z
A Y
A X
B Z
B Y
B Z
A Y
C X
B Y
B Z
B Z
A Y
B X
B Z
B Z
A X
B X
B Z
A Z
B Y
B Z
B Z
B Z
B Z
B Z
A Z
B X
A Y
C Y
B Z
A Y
B Z
B Z
A Y
B Z
B Z
A Y
A Y
B X
B Y
A X
B Z
A Y
B Z
A Z
B Z
B X
B Z
B Z
B Y
B Y
B Z
A X
B Y
B Z
B Z
B Z
B Y
A Y
B Z
B Y
B Z
B Z
B X
A X
B Y
A X
A X
B Z
A X
B Z
C X
B Y
B Z
B Z
B Y
A X
B Z
B Z
B Y
B X
B Z
B X
B Z
C Y
B Y
B Z
B Z
A Z
B Z
B Z
A Y
B Z
B Y
A X
B Z
B Z
B Z
B X
B Z
B Y
B Z
B X
C Z
B Y
B Z
B Z
B Y
A X
A X
B Y
A Y
B Z
B X
B Y
B Z
B Y
B Z
A X
C X
B Z
A Z
C Y
A X
B Y
B Y
A X
A X
B Y
B Z
C Y
B Z
B Y
A X
B Y
B Y
B Z
B X
B Z
C X
C Y
B X
A Y
B Z
B Z
B Z
A X
B Z
B Z
B X
B X
B X
B X
B Y
A Y
B Z
B Z
B Z
A Z
B X
B X
B X
B X
B Z
A Y
B Y
B Z
A X
A X
A X
B Y
B Z
B X
B Z
A Z
B Z
B Z
A Y
C Z
A X
B Z
C X
B Z
B Z
B Z
B Y
B Y
B Z
C X
B Z
A Y
B X
C X
A Y
C X
B Z
B X
A Z
B Z
C Y
B Y
B X
B Z
B Y
A Y
B X
A Z
B Z
B Z
C Z
B Z
B Y
B Z
A Y
C Y
B Z
B X
A Y
B Z
B Z
B Y
B Y
B Z
A X
A Y
A X
A Z
B Z
B Z
B Y
A Y
B Y
B Z
B Y
A Y
B X
A X
B Y
B Y
B X
B Z
B Y
C X
B Z
B Z
B Z
A X
B Z
B X
A Y
A Y
B Z
A Y
A Y
A Y
B Y
B Z
A X
C X
B Y
A X
C X
B Z
B Y
A Y
B X
B Z
B Y
B Y
B Z
B Z
A Y
B X
B X
A X
B Z
B X
B Z
B Z
C Z
C Y
A X
B X
C X
B X
A Z
A X
B Y
C X
B Y
A X
A X
A X
B X
B Z
B X
B Y
B Z
B Z
B Z
B Z
A X
A X
B X
B Z
A Z
A X
B Z
C Y
B Z
A X
B Z
A Z
B Z
B Z
A Y
B Y
B Z
B X
B Z
B Z
C Y
B Z
B X
A X
B Y
B Z
A Y
A X
B Z
B Y
B Z
B X
A Y
C Z
B X
B Z
A X
B X
B Z
B Z
A X
B Y
B X
B Z
B Z
B Y
B X
B X
C X
B Z
C X
B Z
C Y
A Y
C X
B X
B Y
B Z
B Y
B Z
A X
B Z
B Z
B Y
B Y
A X
A X
A Y
B Z
B Z
A Y
B Z
A X
B Z
B X
B X
B X
A Y
B Z
B Z
A Y
B Z
A Z
B Y
B X
A Z
A Z
B Z
A Y
B Z
B Y
B Y
B X
A Y
B X
B Z
B Z
B Y
B X
B Z
B Z
B Z
B Z
A X
B X
B X
B Z
A X
B X
B Z
B Z
B Y
A Y
B Z
B Y
B Y
A X
B X
B Y
C X
C X
B Y
A Y
A Z
B X
B Z
B Z
B Z
B Z
A X
A Y
A Y
B Y
C X
B Z
A Y
B X
C Z
B X
B Y
A Y
B X
B Y
B Z
B Y
B X
B Y
A Z
B Z
A X
B X
B X
B Z
B Y
B Y
B Y
A X
B X
B Y
B Z
A Y
A X
B X
B Z
B Z
C X
A Z
B Z
A X
A Y
C X
B Z
B Z
A X
B X
A Y
A Y
B Z
B Z
B X
A Z
B Z
B Y
A Y
B Z
B Y
A Y
B Y
B Z
A X
B Y
A X
A Y
A X
A X
B Y
A Z
B Z
A Y
B Z
A Z
A Y
B Z
B Y
B Z
B X

"""
defmodule Runner do
  def run(strategy) do
    round_score(strategy) + shape_score(strategy)
  end

  # def round_score(strategy) do
  #   case strategy do
  #     strategy when strategy in [{"A", "Z"}, {"B", "X"}, {"C", "Y"}] -> 0 # 25, 22
  #     strategy when strategy in [{"A", "X"}, {"B", "Y"}, {"C", "Z"}] -> 3 # 23
  #     strategy when strategy in [{"A", "Y"}, {"B", "Z"}, {"C", "X"}] -> 6 # 21, 24
  #   end
  # end
  def round_score({op, sf}) do
    # case to_ascii(sf) - to_ascii(op) do
    #   23 -> 3
    #   result when result in [25, 22] -> 0
    #   result when result in [21, 24] -> 6
    # end
    case (to_ascii(sf) - to_ascii(op)) |> rem(3) do
      0 -> 6
      1 -> 0
      2 -> 3
    end
  end

  # def shape_score({_, "X"}), do: 1
  # def shape_score({_, "Y"}), do: 2
  # def shape_score({_, "Z"}), do: 3
  def shape_score({_, letter}) do
    to_ascii(letter) - 87
  end

  def to_ascii(letter) do
    letter
    |> String.to_charlist()
    |> hd
  end
end
input
|> String.split("\n", trim: true)
|> Enum.map(&String.split(&1, " "))
|> Enum.map(&List.to_tuple/1)
|> Enum.map(&Runner.run(&1))
|> Enum.sum()
"X"
|> String.to_charlist()
|> hd
defmodule Runner2 do
  def run(strategy) do
    round_score(strategy) + shape_score(strategy)
  end

  def round_score({_, "X"}), do: 0
  def round_score({_, "Y"}), do: 3
  def round_score({_, "Z"}), do: 6

  def shape_score(strategy) do
    case strategy do
      strategy when strategy in [{"A", "Y"}, {"B", "X"}, {"C", "Z"}] -> 1
      strategy when strategy in [{"A", "Z"}, {"B", "Y"}, {"C", "X"}] -> 2
      strategy when strategy in [{"A", "X"}, {"B", "Z"}, {"C", "Y"}] -> 3
    end
  end
end
input
|> String.split("\n", trim: true)
|> Enum.map(&String.split(&1, " "))
|> Enum.map(&List.to_tuple/1)
|> Enum.map(&Runner2.run(&1))
|> Enum.sum()