Skip to content

Commit

Permalink
2021.02
Browse files Browse the repository at this point in the history
  • Loading branch information
Doruk Gurleyen committed Dec 2, 2021
1 parent 66af313 commit 3ecbb09
Show file tree
Hide file tree
Showing 2 changed files with 1,012 additions and 9 deletions.
21 changes: 12 additions & 9 deletions challenges/2021/02.exs
Original file line number Diff line number Diff line change
Expand Up @@ -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")
Expand Down
Loading

0 comments on commit 3ecbb09

Please sign in to comment.