Day 1: The Tyranny of the Rocket Equation
I did the Advent of Code 2019 day 1 challenge in Erlang!
#!/usr/bin/env escript
-mode(native).
%% https://adventofcode.com/2019/day/1
main(Args) ->
Nums = lists:append(read_list("~d")),
Sol =
case Args of
["2"] -> fuel_proper(Nums);
_ -> fuel_mod(Nums)
end,
io:format("~w~n", [Sol]).
read_list(Pat) ->
read_list(Pat, []).
read_list(Pat, Acc) ->
case io:fread("", Pat) of
{ok, Res} -> read_list(Pat, [Res|Acc]);
eof -> lists:reverse(Acc)
end.
fuel_mod(Nums) ->
lists:sum([(Mod div 3) - 2 || Mod <- Nums]).
fuel_proper(Nums) ->
lists:sum([mod_proper(Mod) || Mod <- Nums]).
mod_proper(Mod) ->
mod_proper(Mod, 0).
mod_proper(Lift, Fuel) ->
NF = (Lift div 3) - 2,
case NF < 0 of
true -> Fuel;
false -> mod_proper(NF, Fuel + NF)
end.
ARTICLES: 6
Day 18: Settlers of The North Pole - Advent of Code 2018
I did the Advent of Code 2018 day 18 challenge in Erlang! Parts one and two are as follows:
READ MOREDay 14: Chocolate Charts - Advent of Code 2018
I did the Advent of Code 2018 day 14 challenge in Erlang! Parts one and two are as follows:
READ MOREDay 13: Mine Cart Madness - Advent of Code 2018
I did the Advent of Code 2018 day 13 challenge in Erlang! Parts one and two are as follows:
READ MOREDay 12: Subterranean Sustainability - Advent of Code 2018
I did the Advent of Code 2018 day 12 challenge in Erlang! Parts one and two are as follows:
READ MOREDay 9: Marble Mania - Advent of Code 2018
I did the Advent of Code 2018 day 9 challenge in Erlang! Parts one and two are as follows:
READ MOREDay 8: Memory maneuver - Advent of Code
I did the Advent of Code 2018 day 8 challenge in Erlang! Parts one and two are as follows:
READ MORE