adventofcode/2019/day19/problem

123 lines
5.2 KiB
Plaintext
Raw Normal View History

2020-12-09 13:36:53 +00:00
Advent of Code
--- Day 19: Tractor Beam ---
Unsure of the state of Santa's ship, you borrowed the tractor beam technology from Triton. Time to test it out.
When you're safely away from anything else, you activate the tractor beam, but nothing happens. It's hard to tell whether
it's working if there's nothing to use it on. Fortunately, your ship's drone system can be configured to deploy a drone to
specific coordinates and then check whether it's being pulled. There's even an Intcode program (your puzzle input) that gives
you access to the drone system.
The program uses two input instructions to request the X and Y position to which the drone should be deployed. Negative
numbers are invalid and will confuse the drone; all numbers should be zero or positive.
Then, the program will output whether the drone is stationary (0) or being pulled by something (1). For example, the
coordinate X=0, Y=0 is directly in front of the tractor beam emitter, so the drone control program will always report 1 at
that location.
To better understand the tractor beam, it is important to get a good picture of the beam itself. For example, suppose you
scan the 10x10 grid of points closest to the emitter:
X
0-> 9
0#.........
|.#........
v..##......
...###....
....###...
Y .....####.
......####
......####
.......###
9........##
In this example, the number of points affected by the tractor beam in the 10x10 area closest to the emitter is 27.
However, you'll need to scan a larger area to understand the shape of the beam. How many points are affected by the tractor
beam in the 50x50 area closest to the emitter? (For each of X and Y, this will be 0 through 49.)
Your puzzle answer was 217.
--- Part Two ---
You aren't sure how large Santa's ship is. You aren't even sure if you'll need to use this thing on Santa's ship, but it
doesn't hurt to be prepared. You figure Santa's ship might fit in a 100x100 square.
The beam gets wider as it travels away from the emitter; you'll need to be a minimum distance away to fit a square of that
size into the beam fully. (Don't rotate the square; it should be aligned to the same axes as the drone grid.)
For example, suppose you have the following tractor beam readings:
#.......................................
.#......................................
..##....................................
...###..................................
....###.................................
.....####...............................
......#####.............................
......######............................
.......#######..........................
........########........................
.........#########......................
..........#########.....................
...........##########...................
...........############.................
............############................
.............#############..............
..............##############............
...............###############..........
................###############.........
................#################.......
.................########OOOOOOOOOO.....
..................#######OOOOOOOOOO#....
...................######OOOOOOOOOO###..
....................#####OOOOOOOOOO#####
.....................####OOOOOOOOOO#####
.....................####OOOOOOOOOO#####
......................###OOOOOOOOOO#####
.......................##OOOOOOOOOO#####
........................#OOOOOOOOOO#####
.........................OOOOOOOOOO#####
..........................##############
..........................##############
...........................#############
............................############
.............................###########
In this example, the 10x10 square closest to the emitter that fits entirely within the tractor beam has been marked O. Within
it, the point closest to the emitter (the only highlighted O) is at X=25, Y=20.
Find the 100x100 square closest to the emitter that fits entirely within the tractor beam; within that square, find the point
closest to the emitter. What value do you get if you take that point's X coordinate, multiply it by 10000, then add the
point's Y coordinate? (In the example above, this would be 250020.)
Your puzzle answer was 6840937.
Both parts of this puzzle are complete! They provide two gold stars: **
At this point, all that is left is for you to admire your Advent calendar.
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
. https://adventofcode.com/2019/day/9
. https://adventofcode.com/2019
. https://adventofcode.com/2019/day/19/input