201 lines
6.4 KiB
Plaintext
201 lines
6.4 KiB
Plaintext
[1]Advent of Code
|
||
|
||
• [2][About]
|
||
• [3][Events]
|
||
• [4][Shop]
|
||
• [5][Settings]
|
||
• [6][Log Out]
|
||
|
||
br0xen [7](AoC++) 36*
|
||
|
||
var y=[8]2023;
|
||
|
||
• [9][Calendar]
|
||
• [10][AoC++]
|
||
• [11][Sponsors]
|
||
• [12][Leaderboard]
|
||
• [13][Stats]
|
||
|
||
Our [14]sponsors help make Advent of Code possible:
|
||
[15]Bank of America - We use technology, models and data to make financial
|
||
lives better for our clients and communities.
|
||
|
||
--- Day 17: Clumsy Crucible ---
|
||
|
||
The lava starts flowing rapidly once the Lava Production Facility is
|
||
operational. As you leave, the reindeer offers you a parachute, allowing
|
||
you to quickly reach Gear Island.
|
||
|
||
As you descend, your bird's-eye view of Gear Island reveals why you had
|
||
trouble finding anyone on your way up: half of Gear Island is empty, but
|
||
the half below you is a giant factory city!
|
||
|
||
You land near the gradually-filling pool of lava at the base of your new
|
||
lavafall. Lavaducts will eventually carry the lava throughout the city,
|
||
but to make use of it immediately, Elves are loading it into large
|
||
[16]crucibles on wheels.
|
||
|
||
The crucibles are top-heavy and pushed by hand. Unfortunately, the
|
||
crucibles become very difficult to steer at high speeds, and so it can be
|
||
hard to go in a straight line for very long.
|
||
|
||
To get Desert Island the machine parts it needs as soon as possible,
|
||
you'll need to find the best way to get the crucible from the lava pool to
|
||
the machine parts factory. To do this, you need to minimize heat loss
|
||
while choosing a route that doesn't require the crucible to go in a
|
||
straight line for too long.
|
||
|
||
Fortunately, the Elves here have a map (your puzzle input) that uses
|
||
traffic patterns, ambient temperature, and hundreds of other parameters to
|
||
calculate exactly how much heat loss can be expected for a crucible
|
||
entering any particular city block.
|
||
|
||
For example:
|
||
|
||
2413432311323
|
||
3215453535623
|
||
3255245654254
|
||
3446585845452
|
||
4546657867536
|
||
1438598798454
|
||
4457876987766
|
||
3637877979653
|
||
4654967986887
|
||
4564679986453
|
||
1224686865563
|
||
2546548887735
|
||
4322674655533
|
||
|
||
Each city block is marked by a single digit that represents the amount of
|
||
heat loss if the crucible enters that block. The starting point, the lava
|
||
pool, is the top-left city block; the destination, the machine parts
|
||
factory, is the bottom-right city block. (Because you already start in the
|
||
top-left block, you don't incur that block's heat loss unless you leave
|
||
that block and then return to it.)
|
||
|
||
Because it is difficult to keep the top-heavy crucible going in a straight
|
||
line for very long, it can move at most three blocks in a single direction
|
||
before it must turn 90 degrees left or right. The crucible also can't
|
||
reverse direction; after entering each city block, it may only turn left,
|
||
continue straight, or turn right.
|
||
|
||
One way to minimize heat loss is this path:
|
||
|
||
2>>34^>>>1323
|
||
32v>>>35v5623
|
||
32552456v>>54
|
||
3446585845v52
|
||
4546657867v>6
|
||
14385987984v4
|
||
44578769877v6
|
||
36378779796v>
|
||
465496798688v
|
||
456467998645v
|
||
12246868655<v
|
||
25465488877v5
|
||
43226746555v>
|
||
|
||
This path never moves more than three consecutive blocks in the same
|
||
direction and incurs a heat loss of only 102.
|
||
|
||
Directing the crucible from the lava pool to the machine parts factory,
|
||
but not moving more than three consecutive blocks in the same direction,
|
||
what is the least heat loss it can incur?
|
||
|
||
Your puzzle answer was 1001.
|
||
|
||
--- Part Two ---
|
||
|
||
The crucibles of lava simply aren't large enough to provide an adequate
|
||
supply of lava to the machine parts factory. Instead, the Elves are going
|
||
to upgrade to ultra crucibles.
|
||
|
||
Ultra crucibles are even more difficult to steer than normal crucibles.
|
||
Not only do they have trouble going in a straight line, but they also have
|
||
trouble turning!
|
||
|
||
Once an ultra crucible starts moving in a direction, it needs to move a
|
||
minimum of four blocks in that direction before it can turn (or even
|
||
before it can stop at the end). However, it will eventually start to get
|
||
wobbly: an ultra crucible can move a maximum of ten consecutive blocks
|
||
without turning.
|
||
|
||
In the above example, an ultra crucible could follow this path to minimize
|
||
heat loss:
|
||
|
||
2>>>>>>>>1323
|
||
32154535v5623
|
||
32552456v4254
|
||
34465858v5452
|
||
45466578v>>>>
|
||
143859879845v
|
||
445787698776v
|
||
363787797965v
|
||
465496798688v
|
||
456467998645v
|
||
122468686556v
|
||
254654888773v
|
||
432267465553v
|
||
|
||
In the above example, an ultra crucible would incur the minimum possible
|
||
heat loss of 94.
|
||
|
||
Here's another example:
|
||
|
||
111111111111
|
||
999999999991
|
||
999999999991
|
||
999999999991
|
||
999999999991
|
||
|
||
Sadly, an ultra crucible would need to take an unfortunate path like this
|
||
one:
|
||
|
||
1>>>>>>>1111
|
||
9999999v9991
|
||
9999999v9991
|
||
9999999v9991
|
||
9999999v>>>>
|
||
|
||
This route causes the ultra crucible to incur the minimum possible heat
|
||
loss of 71.
|
||
|
||
Directing the ultra crucible from the lava pool to the machine parts
|
||
factory, what is the least heat loss it can incur?
|
||
|
||
Your puzzle answer was 1197.
|
||
|
||
Both parts of this puzzle are complete! They provide two gold stars: **
|
||
|
||
At this point, you should [17]return to your Advent calendar and try
|
||
another puzzle.
|
||
|
||
If you still want to see it, you can [18]get your puzzle input.
|
||
|
||
You can also [Shareon [19]Twitter [20]Mastodon] this puzzle.
|
||
|
||
References
|
||
|
||
Visible links
|
||
1. https://adventofcode.com/
|
||
2. https://adventofcode.com/2023/about
|
||
3. https://adventofcode.com/2023/events
|
||
4. https://teespring.com/stores/advent-of-code
|
||
5. https://adventofcode.com/2023/settings
|
||
6. https://adventofcode.com/2023/auth/logout
|
||
7. Advent of Code Supporter
|
||
https://adventofcode.com/2023/support
|
||
8. https://adventofcode.com/2023
|
||
9. https://adventofcode.com/2023
|
||
10. https://adventofcode.com/2023/support
|
||
11. https://adventofcode.com/2023/sponsors
|
||
12. https://adventofcode.com/2023/leaderboard
|
||
13. https://adventofcode.com/2023/stats
|
||
14. https://adventofcode.com/2023/sponsors
|
||
15. https://careers.bankofamerica.com/
|
||
16. https://en.wikipedia.org/wiki/Crucible
|
||
17. https://adventofcode.com/2023
|
||
18. https://adventofcode.com/2023/day/17/input
|
||
19. https://twitter.com/intent/tweet?text=I%27ve+completed+%22Clumsy+Crucible%22+%2D+Day+17+%2D+Advent+of+Code+2023&url=https%3A%2F%2Fadventofcode%2Ecom%2F2023%2Fday%2F17&related=ericwastl&hashtags=AdventOfCode
|
||
20. javascript:void(0);
|