From 3ecbb09a51918f53c931f9ca42efd7acf74ee2f7 Mon Sep 17 00:00:00 2001 From: Doruk Gurleyen Date: Wed, 1 Dec 2021 23:35:28 -0600 Subject: [PATCH] 2021.02 --- challenges/2021/02.exs | 21 +- challenges/2021/inputs/02.txt | 1000 +++++++++++++++++++++++++++++++++ 2 files changed, 1012 insertions(+), 9 deletions(-) diff --git a/challenges/2021/02.exs b/challenges/2021/02.exs index dd3152c..6adeec0 100644 --- a/challenges/2021/02.exs +++ b/challenges/2021/02.exs @@ -3,17 +3,20 @@ Code.compile_file(Path.join([__ENV__.file], ["../../../utils/utils.exs"])) defmodule Challenge do @moduledoc false - def input do - Utils.load_input(__ENV__.file) - end + def first_result(input), do: input |> Enum.reduce([0, 0], &exec_q1(&1, &2)) |> depth_x_pos() + def second_result(input), do: input |> Enum.reduce([0, 0, 0], &exec_q2(&1, &2)) |> depth_x_pos() - def first_result(input) do - input - end + defp exec_q1("forward " <> x, [pos, depth]), do: [pos + int(x), depth] + defp exec_q1("down " <> x, [pos, depth]), do: [pos, depth + int(x)] + defp exec_q1("up " <> x, [pos, depth]), do: [pos, depth - int(x)] - def second_result(input) do - input - end + defp exec_q2("forward " <> x, [pos, depth, aim]), do: [pos + int(x), depth + aim * int(x), aim] + defp exec_q2("down " <> x, [pos, depth, aim]), do: [pos, depth, aim + int(x)] + defp exec_q2("up " <> x, [pos, depth, aim]), do: [pos, depth, aim - int(x)] + + defp int(str), do: String.to_integer(str) + defp depth_x_pos([x, y]), do: x * y + defp depth_x_pos([x, y, _]), do: x * y end Utils.run(&Challenge.first_result/1, __ENV__.file, "Q1") diff --git a/challenges/2021/inputs/02.txt b/challenges/2021/inputs/02.txt index e69de29..6669386 100644 --- a/challenges/2021/inputs/02.txt +++ b/challenges/2021/inputs/02.txt @@ -0,0 +1,1000 @@ +forward 3 +down 7 +forward 7 +down 4 +down 9 +down 7 +forward 5 +forward 9 +forward 3 +forward 8 +down 4 +down 6 +down 3 +forward 7 +forward 1 +forward 4 +down 1 +forward 7 +forward 9 +down 3 +down 1 +down 5 +forward 8 +down 2 +down 9 +forward 3 +down 9 +down 7 +down 6 +down 1 +forward 4 +forward 9 +forward 8 +down 3 +down 9 +down 5 +forward 5 +down 7 +down 7 +up 1 +down 2 +up 1 +down 7 +up 1 +up 1 +down 8 +down 8 +forward 2 +down 5 +forward 9 +forward 8 +forward 4 +up 2 +down 9 +down 7 +forward 4 +up 7 +up 4 +down 4 +down 3 +forward 8 +down 8 +up 2 +up 1 +forward 3 +up 6 +up 8 +down 5 +down 4 +down 4 +forward 1 +down 8 +forward 3 +forward 5 +forward 4 +forward 2 +forward 7 +up 5 +up 2 +forward 2 +forward 5 +down 4 +up 6 +forward 3 +forward 1 +forward 1 +forward 6 +forward 7 +forward 1 +forward 8 +forward 4 +forward 4 +forward 8 +down 6 +down 8 +forward 4 +forward 1 +down 8 +forward 3 +forward 3 +forward 9 +forward 9 +forward 3 +up 1 +down 2 +down 5 +forward 4 +forward 5 +forward 7 +forward 4 +forward 4 +up 5 +forward 1 +down 9 +down 9 +down 1 +up 7 +down 8 +up 6 +down 4 +forward 7 +down 8 +down 1 +forward 4 +forward 5 +forward 9 +down 2 +forward 7 +forward 7 +up 2 +up 1 +forward 9 +forward 1 +forward 7 +up 3 +forward 8 +forward 1 +down 6 +down 6 +down 4 +forward 2 +forward 1 +down 3 +down 4 +down 2 +forward 9 +up 8 +down 4 +down 3 +down 1 +down 1 +forward 6 +forward 6 +down 7 +forward 1 +forward 5 +forward 9 +forward 5 +forward 1 +up 8 +forward 7 +up 3 +forward 6 +down 5 +up 8 +down 4 +down 8 +forward 2 +up 7 +forward 9 +down 9 +forward 1 +down 5 +forward 8 +down 7 +forward 8 +forward 1 +forward 5 +down 4 +down 1 +forward 4 +up 6 +down 3 +down 1 +forward 1 +forward 1 +up 8 +down 9 +forward 8 +forward 5 +down 5 +forward 1 +up 9 +down 6 +down 4 +up 2 +forward 5 +down 7 +up 1 +forward 3 +up 5 +forward 9 +up 6 +down 4 +forward 6 +down 8 +down 2 +forward 3 +forward 4 +down 5 +down 7 +down 4 +up 3 +up 8 +down 8 +up 8 +down 8 +forward 8 +down 3 +up 3 +forward 8 +down 6 +forward 2 +down 8 +down 5 +up 2 +forward 1 +forward 4 +down 1 +forward 5 +forward 5 +forward 2 +forward 2 +forward 4 +down 7 +forward 6 +up 6 +down 8 +forward 4 +forward 6 +forward 2 +down 8 +down 2 +up 1 +down 8 +forward 9 +up 5 +forward 8 +up 9 +down 1 +down 2 +forward 6 +down 9 +forward 3 +up 8 +up 4 +down 8 +forward 2 +down 1 +forward 6 +forward 4 +down 4 +forward 4 +up 8 +down 6 +forward 3 +up 2 +up 6 +down 1 +down 3 +down 1 +up 6 +down 9 +up 6 +forward 9 +down 4 +forward 3 +forward 1 +up 7 +down 1 +forward 5 +up 1 +up 8 +forward 5 +down 5 +forward 2 +up 8 +up 7 +forward 4 +up 7 +up 4 +forward 5 +forward 3 +down 9 +forward 1 +down 8 +forward 3 +up 3 +down 7 +forward 4 +down 7 +down 5 +down 8 +down 8 +forward 6 +forward 5 +up 4 +down 6 +forward 4 +up 2 +up 4 +down 4 +down 9 +forward 7 +down 8 +forward 6 +forward 5 +up 8 +down 6 +forward 1 +up 2 +forward 5 +forward 7 +down 4 +down 6 +forward 9 +forward 2 +up 6 +up 6 +forward 1 +up 6 +forward 8 +down 7 +forward 1 +down 1 +up 9 +up 1 +forward 1 +forward 7 +forward 5 +down 4 +forward 6 +forward 4 +down 8 +up 6 +up 8 +forward 6 +forward 3 +up 6 +forward 6 +down 8 +down 5 +down 5 +down 2 +down 6 +forward 1 +forward 4 +forward 5 +down 5 +forward 6 +forward 2 +forward 2 +up 7 +up 6 +up 7 +forward 7 +forward 6 +down 7 +down 7 +up 4 +forward 5 +forward 2 +down 6 +up 4 +forward 8 +down 1 +down 5 +up 6 +down 4 +down 3 +down 8 +forward 8 +down 9 +forward 8 +forward 6 +down 4 +down 3 +forward 6 +up 4 +up 9 +forward 3 +down 3 +down 9 +forward 1 +down 7 +forward 2 +up 7 +down 6 +forward 5 +down 8 +down 1 +forward 8 +down 4 +up 3 +down 5 +forward 6 +down 7 +forward 3 +forward 6 +forward 8 +forward 6 +down 4 +down 6 +forward 9 +up 8 +forward 2 +forward 8 +forward 1 +forward 1 +forward 3 +forward 8 +forward 6 +forward 8 +down 5 +down 2 +down 6 +up 4 +forward 5 +forward 9 +forward 1 +down 3 +down 6 +down 7 +forward 5 +forward 8 +up 1 +forward 4 +up 3 +forward 6 +down 3 +down 7 +down 1 +down 1 +forward 8 +forward 3 +forward 2 +forward 1 +forward 3 +forward 7 +up 6 +down 8 +forward 3 +forward 8 +forward 1 +forward 4 +up 3 +down 7 +up 9 +up 6 +forward 1 +forward 6 +forward 5 +down 5 +down 2 +forward 8 +up 8 +down 4 +forward 6 +down 2 +forward 1 +down 8 +forward 2 +forward 9 +forward 1 +down 9 +down 1 +down 9 +down 1 +up 9 +forward 3 +forward 7 +forward 3 +down 5 +up 3 +forward 4 +up 1 +forward 2 +down 8 +forward 8 +down 1 +up 9 +down 7 +forward 9 +up 6 +down 3 +forward 9 +down 2 +down 3 +up 5 +up 5 +forward 8 +down 2 +forward 2 +up 3 +down 8 +down 1 +down 9 +forward 5 +down 5 +down 5 +down 4 +down 8 +forward 7 +up 3 +up 4 +up 4 +up 7 +down 2 +down 6 +up 3 +down 9 +up 2 +forward 6 +forward 1 +down 7 +down 5 +forward 6 +down 6 +up 4 +down 4 +down 8 +up 5 +forward 9 +down 8 +forward 1 +forward 2 +forward 8 +forward 2 +forward 3 +up 9 +up 8 +up 9 +up 6 +down 5 +forward 7 +up 8 +forward 1 +down 3 +down 8 +forward 3 +up 6 +down 2 +forward 2 +up 4 +up 4 +forward 6 +forward 1 +forward 4 +down 3 +down 1 +up 7 +down 9 +up 1 +down 9 +down 4 +up 2 +forward 8 +down 3 +forward 7 +up 6 +forward 7 +up 2 +forward 5 +down 3 +up 2 +down 3 +down 8 +forward 5 +down 8 +forward 7 +up 6 +down 4 +forward 4 +down 1 +up 3 +forward 6 +down 1 +down 2 +down 2 +forward 7 +down 6 +down 2 +forward 9 +down 2 +forward 2 +down 2 +forward 6 +down 9 +up 4 +up 7 +up 6 +down 3 +forward 3 +down 7 +down 6 +forward 8 +down 4 +up 3 +down 1 +forward 8 +down 4 +forward 5 +forward 1 +down 7 +forward 5 +up 3 +down 7 +forward 3 +down 4 +up 1 +down 5 +forward 8 +down 2 +forward 9 +forward 3 +up 2 +down 9 +forward 5 +up 7 +down 7 +down 1 +down 7 +down 8 +forward 1 +down 9 +down 7 +forward 4 +down 5 +forward 9 +down 6 +down 1 +forward 2 +up 4 +up 3 +down 1 +forward 4 +up 3 +forward 4 +up 2 +forward 6 +down 6 +up 8 +down 3 +forward 5 +down 2 +forward 9 +down 3 +down 7 +forward 4 +down 5 +up 9 +up 9 +down 4 +up 5 +forward 1 +down 8 +up 8 +up 4 +up 2 +up 8 +forward 5 +down 5 +up 1 +down 6 +down 3 +up 4 +forward 3 +forward 1 +forward 1 +up 4 +forward 1 +down 6 +forward 7 +forward 4 +forward 4 +forward 9 +forward 6 +down 6 +forward 4 +up 7 +down 5 +down 2 +forward 3 +down 7 +forward 8 +down 7 +forward 4 +up 9 +down 1 +forward 3 +forward 1 +forward 4 +down 2 +up 2 +down 1 +down 4 +down 7 +forward 5 +forward 3 +up 5 +forward 1 +down 4 +down 8 +up 4 +up 1 +down 1 +down 4 +down 2 +down 4 +up 8 +down 3 +forward 8 +up 5 +down 4 +forward 9 +forward 7 +down 4 +forward 7 +forward 9 +forward 6 +forward 9 +up 9 +down 3 +up 4 +down 8 +forward 9 +up 2 +up 3 +forward 8 +forward 3 +forward 1 +forward 7 +forward 8 +forward 9 +down 7 +forward 3 +forward 3 +forward 4 +up 8 +forward 1 +forward 5 +up 9 +down 2 +down 7 +forward 5 +up 4 +forward 9 +down 9 +up 2 +forward 7 +down 9 +up 8 +up 1 +up 1 +up 5 +forward 4 +down 2 +forward 7 +down 1 +down 8 +down 8 +forward 3 +forward 8 +up 9 +forward 7 +forward 6 +forward 3 +forward 7 +up 3 +up 6 +forward 5 +forward 5 +down 2 +down 7 +down 7 +up 7 +forward 6 +forward 1 +forward 7 +up 6 +down 9 +forward 7 +forward 1 +up 7 +forward 4 +forward 9 +up 2 +down 5 +down 6 +down 4 +forward 1 +forward 7 +forward 4 +forward 5 +down 2 +forward 5 +down 9 +forward 7 +forward 4 +up 5 +down 6 +forward 2 +forward 4 +forward 8 +up 1 +down 2 +up 9 +forward 6 +down 1 +forward 6 +forward 4 +down 6 +forward 6 +up 4 +down 5 +forward 8 +down 3 +up 4 +forward 3 +down 6 +up 7 +down 8 +down 5 +down 7 +forward 4 +down 1 +forward 5 +up 9 +up 3 +down 4 +forward 9 +forward 6 +forward 1 +up 5 +down 5 +forward 1 +forward 6 +down 4 +up 7 +forward 5 +down 5 +forward 1 +forward 5 +down 4 +forward 6 +down 6 +down 5 +down 5 +forward 4 +down 5 +forward 2 +down 9 +down 6 +down 5 +forward 5 +down 9 +down 7 +up 8 +down 3 +forward 6 +down 4 +forward 8 +forward 9 +down 1 +up 3 +forward 4 +up 3 +forward 7 +down 5 +up 8 +forward 1 +up 1 +down 2 +forward 1 +up 9 +down 4 +forward 1 +up 3 +down 9 +up 8 +down 2 +up 4 +forward 2 +forward 8 +up 8 +forward 9 +forward 2 +down 4 +forward 8 +down 4 +forward 9 +down 1 +up 8 +forward 6 +down 4 +down 8 +forward 1 +forward 1 +forward 5 +forward 9 +up 4 +down 7 +forward 4 +down 5 +forward 1 +down 4 +up 8 +up 4 +forward 2 +forward 9 +down 8 +down 3 +down 2 +up 3 +down 1 +down 8 +forward 5 +down 6 +down 5 +forward 8 +down 8 +down 1 +forward 1 +forward 3 +forward 7 +forward 1 +up 2 +up 3 +forward 9 +down 2 +forward 5 +down 8 +forward 7 +forward 3 +up 5 +forward 1 +forward 1 +up 8 +down 1 +down 2 +down 7 +down 1 +down 9 +forward 7 +down 8 +down 4 +up 8 +forward 1 +down 6 +forward 9 +forward 7 +up 2 +forward 3 +forward 2 +up 3 +up 6 +up 1 +down 1 +up 9 +forward 8 +forward 6 +down 6 +up 8 +down 8 +forward 5 +forward 7 +down 7 +forward 3 +forward 9 +down 8 +down 8 +forward 2 +up 7 +down 4 +down 7 +up 6 +down 3 +forward 1 +forward 8 +down 5 +down 6 +up 5 +forward 8 +forward 6 +up 8 +forward 8 +up 3 +up 6 +up 3 +forward 1 \ No newline at end of file