Add new Elixir template
This commit is contained in:
parent
4955687b53
commit
cb850a5b5e
2 changed files with 48 additions and 9 deletions
48
template/dayN.exs
Normal file
48
template/dayN.exs
Normal file
|
@ -0,0 +1,48 @@
|
|||
defmodule DayREPLACE_ME do
|
||||
def part1(input) do
|
||||
input
|
||||
end
|
||||
|
||||
def part2(input) do
|
||||
input
|
||||
end
|
||||
|
||||
def run do
|
||||
with [input_filename] <- System.argv(),
|
||||
{:ok, input} <- File.read(input_filename) do
|
||||
run_parts_with_timer(input)
|
||||
else
|
||||
_ -> print_usage()
|
||||
end
|
||||
end
|
||||
|
||||
def run_parts_with_timer(input) do
|
||||
{p1_microsecs, p1_result} = :timer.tc(fn -> part1(input) end)
|
||||
IO.puts("Part 1 (completed in #{format_time(p1_microsecs)}):")
|
||||
IO.write("\n")
|
||||
IO.puts(p1_result)
|
||||
IO.write("\n")
|
||||
|
||||
{p2_microsecs, p2_result} = :timer.tc(fn -> part2(input) end)
|
||||
IO.puts("Part 2 (completed in #{format_time(p2_microsecs)}):")
|
||||
IO.write("\n")
|
||||
IO.puts(p2_result)
|
||||
end
|
||||
|
||||
defp format_time(μsec) when μsec < 1_000, do: "#{μsec}μs"
|
||||
defp format_time(μsec) when μsec < 1_000_000, do: "#{μsec / 1000}ms"
|
||||
defp format_time(μsec) when μsec < 60_000_000, do: "#{μsec / 1_000_000}s"
|
||||
|
||||
defp format_time(μsec) when μsec < 3_660_000_000 do
|
||||
total_secs = round(μsec / 1_000_000)
|
||||
mins = div(total_secs, 60)
|
||||
secs = rem(total_secs, 60)
|
||||
"#{mins}m#{secs}s"
|
||||
end
|
||||
|
||||
defp print_usage do
|
||||
IO.puts("Usage: elixir dayREPLACE_ME.exs input_filename")
|
||||
end
|
||||
end
|
||||
|
||||
DayREPLACE_ME.run()
|
|
@ -1,9 +0,0 @@
|
|||
defmodule DayREPLACE_MEPart1 do
|
||||
def run do
|
||||
File.read!("input")
|
||||
|> String.split("\n", trim: true)
|
||||
|> IO.inspect()
|
||||
end
|
||||
end
|
||||
|
||||
DayREPLACE_MEPart1.run()
|
Loading…
Reference in a new issue