From: EC2 Default User Date: Fri, 3 Dec 2021 12:44:47 +0000 (+0000) Subject: minor fixes X-Git-Url: https://fbox.kageds.com/gitweb/adventofcode.git/commitdiff_plain/a2be18ffd0eba30344348f44ae09c6a242277333?hp=631d46d1172966f4651050b813ad4298496423ff minor fixes --- diff --git a/day2/day2.erl b/day2/day2.erl index 1d6662d..7fd7f06 100644 --- a/day2/day2.erl +++ b/day2/day2.erl @@ -1,9 +1,52 @@ -module(day2). --export ([solve/1, solve/2]). +-export ([solve/0, solve/1, solve/2]). + +solve() -> + solve(['1']), + solve(['2']), + init:stop(). solve(A) -> - D = [ + solve(A, get_data()). + +solve(['1'], D) -> + io:format("The solution to ~p puzzle1 is: ~p~n", [?MODULE, solve(1, D)]); +solve(1, D) -> + solution1(D); +solve(['2'], D) -> + io:format("The solution to ~p puzzle2 is: ~p~n", [?MODULE, solve(2, D)]); +solve(2, D) -> + solution2(D). + +solution1(D) -> + {X, Y} = + lists:foldl(fun({Dir, Dis}, {X, Y}) -> + case Dir of + 'up' -> {X, Y - Dis}; + 'down' -> {X, Y + Dis}; + 'forward' -> {X + Dis, Y} + end + end, + {0, 0}, + D), + X * Y. + +solution2(D) -> + {X, Y, _} = + lists:foldl(fun({Dir, Dis}, {X, Y, Aim}) -> + case Dir of + 'up' -> {X, Y, Aim - Dis}; + 'down' -> {X, Y, Aim + Dis}; + 'forward' -> {X + Dis, Y + (Dis * Aim), Aim} + end + end, + {0,0,0}, + D), + X * Y. + +get_data() -> +[ {forward, 3}, {down, 4}, {forward, 3}, @@ -1004,36 +1047,4 @@ solve(A) -> {forward, 5}, {forward, 3}, {forward, 7} -], - - solve(A, D). - -solve(['1'], D) -> - io:format("The solution to puzzle day2 is: ~p", [solve(1, D)]); -solve(1, D) -> - {X, Y} = - lists:foldl(fun({Dir, Dis}, {X, Y}) -> - case Dir of - 'up' -> {X, Y - Dis}; - 'down' -> {X, Y + Dis}; - 'forward' -> {X + Dis, Y} - end - end, - {0, 0}, - D), - X * Y; -solve(['2'], D) -> - io:format("The solution to puzzle day2 is: ~p", [solve(2, D)]); -solve(2, D) -> - {X, Y, _} = - lists:foldl(fun({Dir, Dis}, {X, Y, Aim}) -> - case Dir of - 'up' -> {X, Y, Aim - Dis}; - 'down' -> {X, Y, Aim + Dis}; - 'forward' -> {X + Dis, Y + (Dis * Aim), Aim} - end - end, - {0,0,0}, - D), - X * Y. - +].