AdventOfCode/2020/elixir/day1/README

42 lines
953 B
Plaintext
Raw Normal View History

2020-12-01 05:19:13 +00:00
Day 1 Notes
2020-12-01 05:36:44 +00:00
------
2020-12-01 05:19:13 +00:00
Part1:
2020-12-01 05:36:44 +00:00
------
2020-12-01 05:19:13 +00:00
$ elixir day1part1.exs
618 x 1402 = 866436
2020-12-01 05:36:44 +00:00
Thoughts:
Avoid iterating seen elements by consuming the list, and comparing each list element only to the remaining
elements.
------
Part2:
------
$ elixir day1part2.exs
547 x 545 x 928 = 276650720
Thoughts:
Use a comprehension over two versions of the remaining list to efficiently compare the three items.
2020-12-01 05:47:20 +00:00
Would have been simpler to use a comprehension for all 3 elements (and for the 2 elements from part 1)
rather than using recursion for the outer loop.
E.g.
for i <- list, j <- list, k <- list, do: ...
2020-12-01 06:59:46 +00:00
However, can't short-circuit comprehensions, so maybe recursion was a good choice after all 🤷‍♂️
2020-12-01 07:48:01 +00:00
Tried it out, and turned out that while it doesn't short-circuit, it's still pretty quick. So I added
day1refactored.exs with the simpler implementation.
$ elixir day1refactored.exs
Part1: 618 x 1402 = 866436
Part2: 928 x 547 x 545 = 276650720