2019 day 3 + add br.h for some useful stuff (min, max... macros)

This commit is contained in:
2022-09-19 19:35:37 +02:00
parent b67600957e
commit 828d13f967
7 changed files with 502 additions and 14 deletions

View File

@@ -55,12 +55,61 @@ is closer to the central port: its distance is =3 + 3 = 6=.
Here are a few more examples:
- =R75,D30,R83,U83,L12,D49,R71,U7,L72=
=U62,R66,U55,R34,D71,R55,D58,R83= =distance =159=
- =R98,U47,R26,D63,R33,U87,L62,D20,R33,U53,R51=
=U98,R91,D20,R16,D67,R40,U7,R15,U6,R7= =distance =135=
- =R75,D30,R83,U83,L12,D49,R71,U7,L72U62,R66,U55,R34,D71,R55,D58,R83= =
distance =159=
- =R98,U47,R26,D63,R33,U87,L62,D20,R33,U53,R51U98,R91,D20,R16,D67,R40,U7,R15,U6,R7=
= distance =135=
/What is the Manhattan distance/ from the central port to the closest
intersection?
To begin, [[file:3/input][get your puzzle input]].
Your puzzle answer was =860=.
** --- Part Two ---
It turns out that this circuit is very timing-sensitive; you actually
need to /minimize the signal delay/.
To do this, calculate the /number of steps/ each wire takes to reach
each intersection; choose the intersection where the /sum of both wires'
steps/ is lowest. If a wire visits a position on the grid multiple
times, use the steps value from the /first/ time it visits that position
when calculating the total value of a specific intersection.
The number of steps a wire takes is the total number of grid squares the
wire has entered to get to that location, including the intersection
being considered. Again consider the example from above:
#+BEGIN_EXAMPLE
...........
.+-----+...
.|.....|...
.|..+--X-+.
.|..|..|.|.
.|.-X--+.|.
.|..|....|.
.|.......|.
.o-------+.
...........
#+END_EXAMPLE
In the above example, the intersection closest to the central port is
reached after =8+5+5+2 = 20= steps by the first wire and =7+6+4+3 = 20=
steps by the second wire for a total of =20+20 = 40= steps.
However, the top-right intersection is better: the first wire takes only
=8+5+2 = 15= and the second wire takes only =7+6+2 = 15=, a total of
=15+15 = 30= steps.
Here are the best steps for the extra examples from above:
- =R75,D30,R83,U83,L12,D49,R71,U7,L72U62,R66,U55,R34,D71,R55,D58,R83= =
=610= steps
- =R98,U47,R26,D63,R33,U87,L62,D20,R33,U53,R51U98,R91,D20,R16,D67,R40,U7,R15,U6,R7=
= =410= steps
/What is the fewest combined steps the wires must take to reach an
intersection?/
Your puzzle answer was =9238=.
Both parts of this puzzle are complete! They provide two gold stars: **