2019-12-03 14:25:33 +00:00
|
|
|
|
Advent of Code
|
|
|
|
|
|
|
|
|
|
--- Day 3: Crossed Wires ---
|
|
|
|
|
|
2019-12-04 14:45:25 +00:00
|
|
|
|
The gravity assist was successful, and you're well on your way to the Venus refuelling station. During the rush
|
|
|
|
|
back on Earth, the fuel management system wasn't completely installed, so that's next on the priority list.
|
2019-12-03 14:25:33 +00:00
|
|
|
|
|
2019-12-04 14:45:25 +00:00
|
|
|
|
Opening the front panel reveals a jumble of wires. Specifically, two wires are connected to a central port and
|
|
|
|
|
extend outward on a grid. You trace the path each wire takes as it leaves the central port, one wire per line of
|
|
|
|
|
text (your puzzle input).
|
2019-12-03 14:25:33 +00:00
|
|
|
|
|
2019-12-04 14:45:25 +00:00
|
|
|
|
The wires twist and turn, but the two wires occasionally cross paths. To fix the circuit, you need to find the
|
|
|
|
|
intersection point closest to the central port. Because the wires are on a grid, use the Manhattan distance for
|
|
|
|
|
this measurement. While the wires do technically cross right at the central port where they both start, this point
|
|
|
|
|
does not count, nor does a wire count as crossing with itself.
|
2019-12-03 14:25:33 +00:00
|
|
|
|
|
2019-12-04 14:45:25 +00:00
|
|
|
|
For example, if the first wire's path is R8,U5,L5,D3, then starting from the central port (o), it goes right 8, up
|
|
|
|
|
5, left 5, and finally down 3:
|
2019-12-03 14:25:33 +00:00
|
|
|
|
|
|
|
|
|
...........
|
|
|
|
|
...........
|
|
|
|
|
...........
|
|
|
|
|
....+----+.
|
|
|
|
|
....|....|.
|
|
|
|
|
....|....|.
|
|
|
|
|
....|....|.
|
|
|
|
|
.........|.
|
|
|
|
|
.o-------+.
|
|
|
|
|
...........
|
|
|
|
|
|
|
|
|
|
Then, if the second wire's path is U7,R6,D4,L4, it goes up 7, right 6, down 4, and left 4:
|
|
|
|
|
|
|
|
|
|
...........
|
|
|
|
|
.+-----+...
|
|
|
|
|
.|.....|...
|
|
|
|
|
.|..+--X-+.
|
|
|
|
|
.|..|..|.|.
|
|
|
|
|
.|.-X--+.|.
|
|
|
|
|
.|..|....|.
|
|
|
|
|
.|.......|.
|
|
|
|
|
.o-------+.
|
|
|
|
|
...........
|
|
|
|
|
|
2019-12-04 14:45:25 +00:00
|
|
|
|
These wires cross at two locations (marked X), but the lower-left one is closer to the central port: its distance
|
|
|
|
|
is 3 + 3 = 6.
|
2019-12-03 14:25:33 +00:00
|
|
|
|
|
|
|
|
|
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
|
|
|
|
|
|
|
|
|
|
What is the Manhattan distance from the central port to the closest intersection?
|
|
|
|
|
|
2019-12-04 14:45:25 +00:00
|
|
|
|
Your puzzle answer was 258.
|
|
|
|
|
|
2019-12-03 14:25:33 +00:00
|
|
|
|
--- Part Two ---
|
|
|
|
|
|
|
|
|
|
It turns out that this circuit is very timing-sensitive; you actually need to minimize the signal delay.
|
|
|
|
|
|
2019-12-04 14:45:25 +00:00
|
|
|
|
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.
|
2019-12-03 14:25:33 +00:00
|
|
|
|
|
2019-12-04 14:45:25 +00:00
|
|
|
|
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:
|
2019-12-03 14:25:33 +00:00
|
|
|
|
|
|
|
|
|
...........
|
|
|
|
|
.+-----+...
|
|
|
|
|
.|.....|...
|
|
|
|
|
.|..+--X-+.
|
|
|
|
|
.|..|..|.|.
|
|
|
|
|
.|.-X--+.|.
|
|
|
|
|
.|..|....|.
|
|
|
|
|
.|.......|.
|
|
|
|
|
.o-------+.
|
|
|
|
|
...........
|
|
|
|
|
|
2019-12-04 14:45:25 +00:00
|
|
|
|
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.
|
2019-12-03 14:25:33 +00:00
|
|
|
|
|
2019-12-04 14:45:25 +00:00
|
|
|
|
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.
|
2019-12-03 14:25:33 +00:00
|
|
|
|
|
|
|
|
|
Here are the best steps for the extra examples from above:
|
|
|
|
|
|
|
|
|
|
• R75,D30,R83,U83,L12,D49,R71,U7,L72
|
|
|
|
|
U62,R66,U55,R34,D71,R55,D58,R83 = 610 steps
|
|
|
|
|
• R98,U47,R26,D63,R33,U87,L62,D20,R33,U53,R51
|
|
|
|
|
U98,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?
|
|
|
|
|
|
2019-12-04 14:45:25 +00:00
|
|
|
|
Your puzzle answer was 12304.
|
|
|
|
|
|
2019-12-03 14:25:33 +00:00
|
|
|
|
Both parts of this puzzle are complete! They provide two gold stars: **
|
|
|
|
|
|
|
|
|
|
At this point, you should return to your Advent calendar and try another puzzle.
|
|
|
|
|
|
|
|
|
|
If you still want to see it, you can get your puzzle input.
|
|
|
|
|
|
|
|
|
|
References
|
|
|
|
|
|
|
|
|
|
Visible links
|
|
|
|
|
. https://adventofcode.com/
|
|
|
|
|
. https://adventofcode.com/2019/about
|
|
|
|
|
. https://adventofcode.com/2019/events
|
|
|
|
|
. https://adventofcode.com/2019/settings
|
|
|
|
|
. https://adventofcode.com/2019/auth/logout
|
|
|
|
|
. Advent of Code Supporter
|
|
|
|
|
https://adventofcode.com/2019/support
|
|
|
|
|
. https://adventofcode.com/2019
|
|
|
|
|
. https://adventofcode.com/2019
|
|
|
|
|
. https://adventofcode.com/2019/support
|
|
|
|
|
. https://adventofcode.com/2019/sponsors
|
|
|
|
|
. https://adventofcode.com/2019/leaderboard
|
|
|
|
|
. https://adventofcode.com/2019/stats
|
|
|
|
|
. https://adventofcode.com/2019/sponsors
|
2019-12-04 14:45:25 +00:00
|
|
|
|
. https://tretton37.com/join
|
2019-12-03 14:25:33 +00:00
|
|
|
|
. https://en.wikipedia.org/wiki/Taxicab_geometry
|
|
|
|
|
. https://adventofcode.com/2019
|
|
|
|
|
. https://adventofcode.com/2019/day/3/input
|