You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
34 lines
751 B
34 lines
751 B
# iex()> Day1.load_file |> Day1.first |
|
|
|
defmodule Day1 do |
|
def load_file() do |
|
File.read!("input.txt") |
|
|> String.split("\n", trim: true) |
|
|> Enum.map(fn n -> Integer.parse(n) end) |
|
|> Enum.map(fn tup -> Kernel.elem(tup, 0) end) |
|
end |
|
|
|
@spec first([Integer]) :: Integer |
|
def first(input) do |
|
Enum.reduce(input, 0, fn curr1, res1 -> |
|
if res1 > 0 and res1 != nil do |
|
res1 |
|
else |
|
Enum.reduce(input, 0, fn curr2, res2 -> |
|
if res2 > 0 and res2 != nil do |
|
res2 |
|
else |
|
if curr1 + curr2 == 2020 do |
|
curr1 * curr2 |
|
end |
|
end |
|
end) |
|
end |
|
end) |
|
end |
|
|
|
@spec second([Integer]) :: Integer |
|
def second(input) do |
|
:second |
|
end |
|
end
|
|
|