367 lines
7.4 KiB
Plaintext
367 lines
7.4 KiB
Plaintext
Advent of Code
|
||
|
||
• [About]
|
||
• [Events]
|
||
• [Shop]
|
||
• [Settings]
|
||
• [Log Out]
|
||
|
||
br0xen (AoC++) 41*
|
||
|
||
int y=2022;
|
||
|
||
• [Calendar]
|
||
• [AoC++]
|
||
• [Sponsors]
|
||
• [Leaderboard]
|
||
• [Stats]
|
||
|
||
Our sponsors help make Advent of Code possible:
|
||
Smarty - Join our private leaderboard and solve our
|
||
puzzles for BIG PRIZES!!! ----------------- Address
|
||
Validation and Autocomplete, and more!
|
||
|
||
--- Day 24: Blizzard Basin ---
|
||
|
||
With everything replanted for next year (and with
|
||
elephants and monkeys to tend the grove), you and the
|
||
Elves leave for the extraction point.
|
||
|
||
Partway up the mountain that shields the grove is a
|
||
flat, open area that serves as the extraction point.
|
||
It's a bit of a climb, but nothing the expedition can't
|
||
handle.
|
||
|
||
At least, that would normally be true; now that the
|
||
mountain is covered in snow, things have become more
|
||
difficult than the Elves are used to.
|
||
|
||
As the expedition reaches a valley that must be
|
||
traversed to reach the extraction site, you find that
|
||
strong, turbulent winds are pushing small blizzards of
|
||
snow and sharp ice around the valley. It's a good thing
|
||
everyone packed warm clothes! To make it across safely,
|
||
you'll need to find a way to avoid them.
|
||
|
||
Fortunately, it's easy to see all of this from the
|
||
entrance to the valley, so you make a map of the valley
|
||
and the blizzards (your puzzle input). For example:
|
||
|
||
#.#####
|
||
#.....#
|
||
#>....#
|
||
#.....#
|
||
#...v.#
|
||
#.....#
|
||
#####.#
|
||
|
||
The walls of the valley are drawn as #; everything else
|
||
is ground. Clear ground - where there is currently no
|
||
blizzard - is drawn as .. Otherwise, blizzards are
|
||
drawn with an arrow indicating their direction of
|
||
motion: up (^), down (v), left (<), or right (>).
|
||
|
||
The above map includes two blizzards, one moving right
|
||
(>) and one moving down (v). In one minute, each
|
||
blizzard moves one position in the direction it is
|
||
pointing:
|
||
|
||
#.#####
|
||
#.....#
|
||
#.>...#
|
||
#.....#
|
||
#.....#
|
||
#...v.#
|
||
#####.#
|
||
|
||
Due to conservation of blizzard energy, as a blizzard
|
||
reaches the wall of the valley, a new blizzard forms on
|
||
the opposite side of the valley moving in the same
|
||
direction. After another minute, the bottom
|
||
downward-moving blizzard has been replaced with a new
|
||
downward-moving blizzard at the top of the valley
|
||
instead:
|
||
|
||
#.#####
|
||
#...v.#
|
||
#..>..#
|
||
#.....#
|
||
#.....#
|
||
#.....#
|
||
#####.#
|
||
|
||
Because blizzards are made of tiny snowflakes, they
|
||
pass right through each other. After another minute,
|
||
both blizzards temporarily occupy the same position,
|
||
marked 2:
|
||
|
||
#.#####
|
||
#.....#
|
||
#...2.#
|
||
#.....#
|
||
#.....#
|
||
#.....#
|
||
#####.#
|
||
|
||
After another minute, the situation resolves itself,
|
||
giving each blizzard back its personal space:
|
||
|
||
#.#####
|
||
#.....#
|
||
#....>#
|
||
#...v.#
|
||
#.....#
|
||
#.....#
|
||
#####.#
|
||
|
||
Finally, after yet another minute, the rightward-facing
|
||
blizzard on the right is replaced with a new one on the
|
||
left facing the same direction:
|
||
|
||
#.#####
|
||
#.....#
|
||
#>....#
|
||
#.....#
|
||
#...v.#
|
||
#.....#
|
||
#####.#
|
||
|
||
This process repeats at least as long as you are
|
||
observing it, but probably forever.
|
||
|
||
Here is a more complex example:
|
||
|
||
#.######
|
||
#>>.<^<#
|
||
#.<..<<#
|
||
#>v.><>#
|
||
#<^v^^>#
|
||
######.#
|
||
|
||
Your expedition begins in the only non-wall position in
|
||
the top row and needs to reach the only non-wall
|
||
position in the bottom row. On each minute, you can
|
||
move up, down, left, or right, or you can wait in
|
||
place. You and the blizzards act simultaneously, and
|
||
you cannot share a position with a blizzard.
|
||
|
||
In the above example, the fastest way to reach your
|
||
goal requires 18 steps. Drawing the position of the
|
||
expedition as E, one way to achieve this is:
|
||
|
||
Initial state:
|
||
#E######
|
||
#>>.<^<#
|
||
#.<..<<#
|
||
#>v.><>#
|
||
#<^v^^>#
|
||
######.#
|
||
|
||
Minute 1, move down:
|
||
#.######
|
||
#E>3.<.#
|
||
#<..<<.#
|
||
#>2.22.#
|
||
#>v..^<#
|
||
######.#
|
||
|
||
Minute 2, move down:
|
||
#.######
|
||
#.2>2..#
|
||
#E^22^<#
|
||
#.>2.^>#
|
||
#.>..<.#
|
||
######.#
|
||
|
||
Minute 3, wait:
|
||
#.######
|
||
#<^<22.#
|
||
#E2<.2.#
|
||
#><2>..#
|
||
#..><..#
|
||
######.#
|
||
|
||
Minute 4, move up:
|
||
#.######
|
||
#E<..22#
|
||
#<<.<..#
|
||
#<2.>>.#
|
||
#.^22^.#
|
||
######.#
|
||
|
||
Minute 5, move right:
|
||
#.######
|
||
#2Ev.<>#
|
||
#<.<..<#
|
||
#.^>^22#
|
||
#.2..2.#
|
||
######.#
|
||
|
||
Minute 6, move right:
|
||
#.######
|
||
#>2E<.<#
|
||
#.2v^2<#
|
||
#>..>2>#
|
||
#<....>#
|
||
######.#
|
||
|
||
Minute 7, move down:
|
||
#.######
|
||
#.22^2.#
|
||
#<vE<2.#
|
||
#>>v<>.#
|
||
#>....<#
|
||
######.#
|
||
|
||
Minute 8, move left:
|
||
#.######
|
||
#.<>2^.#
|
||
#.E<<.<#
|
||
#.22..>#
|
||
#.2v^2.#
|
||
######.#
|
||
|
||
Minute 9, move up:
|
||
#.######
|
||
#<E2>>.#
|
||
#.<<.<.#
|
||
#>2>2^.#
|
||
#.v><^.#
|
||
######.#
|
||
|
||
Minute 10, move right:
|
||
#.######
|
||
#.2E.>2#
|
||
#<2v2^.#
|
||
#<>.>2.#
|
||
#..<>..#
|
||
######.#
|
||
|
||
Minute 11, wait:
|
||
#.######
|
||
#2^E^2>#
|
||
#<v<.^<#
|
||
#..2.>2#
|
||
#.<..>.#
|
||
######.#
|
||
|
||
Minute 12, move down:
|
||
#.######
|
||
#>>.<^<#
|
||
#.<E.<<#
|
||
#>v.><>#
|
||
#<^v^^>#
|
||
######.#
|
||
|
||
Minute 13, move down:
|
||
#.######
|
||
#.>3.<.#
|
||
#<..<<.#
|
||
#>2E22.#
|
||
#>v..^<#
|
||
######.#
|
||
|
||
Minute 14, move right:
|
||
#.######
|
||
#.2>2..#
|
||
#.^22^<#
|
||
#.>2E^>#
|
||
#.>..<.#
|
||
######.#
|
||
|
||
Minute 15, move right:
|
||
#.######
|
||
#<^<22.#
|
||
#.2<.2.#
|
||
#><2>E.#
|
||
#..><..#
|
||
######.#
|
||
|
||
Minute 16, move right:
|
||
#.######
|
||
#.<..22#
|
||
#<<.<..#
|
||
#<2.>>E#
|
||
#.^22^.#
|
||
######.#
|
||
|
||
Minute 17, move down:
|
||
#.######
|
||
#2.v.<>#
|
||
#<.<..<#
|
||
#.^>^22#
|
||
#.2..2E#
|
||
######.#
|
||
|
||
Minute 18, move down:
|
||
#.######
|
||
#>2.<.<#
|
||
#.2v^2<#
|
||
#>..>2>#
|
||
#<....>#
|
||
######E#
|
||
|
||
What is the fewest number of minutes required to avoid
|
||
the blizzards and reach the goal?
|
||
|
||
Your puzzle answer was 240.
|
||
|
||
--- Part Two ---
|
||
|
||
As the expedition reaches the far side of the valley,
|
||
one of the Elves looks especially dismayed:
|
||
|
||
He forgot his snacks at the entrance to the valley!
|
||
|
||
Since you're so good at dodging blizzards, the Elves
|
||
humbly request that you go back for his snacks. From
|
||
the same initial conditions, how quickly can you make
|
||
it from the start to the goal, then back to the start,
|
||
then back to the goal?
|
||
|
||
In the above example, the first trip to the goal takes
|
||
18 minutes, the trip back to the start takes 23
|
||
minutes, and the trip back to the goal again takes 13
|
||
minutes, for a total time of 54 minutes.
|
||
|
||
What is the fewest number of minutes required to reach
|
||
the goal, go back to the start, then reach the goal
|
||
again?
|
||
|
||
Your puzzle answer was 717.
|
||
|
||
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.
|
||
|
||
You can also [Shareon Twitter Mastodon] this puzzle.
|
||
|
||
References
|
||
|
||
Visible links
|
||
. https://adventofcode.com/
|
||
. https://adventofcode.com/2022/about
|
||
. https://adventofcode.com/2022/events
|
||
. https://teespring.com/stores/advent-of-code
|
||
. https://adventofcode.com/2022/settings
|
||
. https://adventofcode.com/2022/auth/logout
|
||
. Advent of Code Supporter
|
||
https://adventofcode.com/2022/support
|
||
. https://adventofcode.com/2022
|
||
. https://adventofcode.com/2022
|
||
. https://adventofcode.com/2022/support
|
||
. https://adventofcode.com/2022/sponsors
|
||
. https://adventofcode.com/2022/leaderboard
|
||
. https://adventofcode.com/2022/stats
|
||
. https://adventofcode.com/2022/sponsors
|
||
. https://www.smarty.com/advent-of-code
|
||
. https://adventofcode.com/2022
|
||
. https://adventofcode.com/2022/day/24/input
|
||
. https://twitter.com/intent/tweet?text=I%27ve+completed+%22Blizzard+Basin%22+%2D+Day+24+%2D+Advent+of+Code+2022&url=https%3A%2F%2Fadventofcode%2Ecom%2F2022%2Fday%2F24&related=ericwastl&hashtags=AdventOfCode
|
||
. javascript:void(0);
|