2023 Day 14 Complete!
This commit is contained in:
203
2023/day14/problem
Normal file
203
2023/day14/problem
Normal file
@@ -0,0 +1,203 @@
|
||||
[1]Advent of Code
|
||||
|
||||
• [2][About]
|
||||
• [3][Events]
|
||||
• [4][Shop]
|
||||
• [5][Settings]
|
||||
• [6][Log Out]
|
||||
|
||||
br0xen [7](AoC++) 28*
|
||||
|
||||
$year=[8]2023;
|
||||
|
||||
• [9][Calendar]
|
||||
• [10][AoC++]
|
||||
• [11][Sponsors]
|
||||
• [12][Leaderboard]
|
||||
• [13][Stats]
|
||||
|
||||
Our [14]sponsors help make Advent of Code possible:
|
||||
[15]Jane Street - Will our next great idea come from you? We hire smart,
|
||||
humble people who love to solve problems, build systems, and test
|
||||
theories. Our success is driven by our people and we never stop improving.
|
||||
|
||||
--- Day 14: Parabolic Reflector Dish ---
|
||||
|
||||
You reach the place where all of the mirrors were pointing: a massive
|
||||
[16]parabolic reflector dish attached to the side of another large
|
||||
mountain.
|
||||
|
||||
The dish is made up of many small mirrors, but while the mirrors
|
||||
themselves are roughly in the shape of a parabolic reflector dish, each
|
||||
individual mirror seems to be pointing in slightly the wrong direction. If
|
||||
the dish is meant to focus light, all it's doing right now is sending it
|
||||
in a vague direction.
|
||||
|
||||
This system must be what provides the energy for the lava! If you focus
|
||||
the reflector dish, maybe you can go where it's pointing and use the light
|
||||
to fix the lava production.
|
||||
|
||||
Upon closer inspection, the individual mirrors each appear to be connected
|
||||
via an elaborate system of ropes and pulleys to a large metal platform
|
||||
below the dish. The platform is covered in large rocks of various shapes.
|
||||
Depending on their position, the weight of the rocks deforms the platform,
|
||||
and the shape of the platform controls which ropes move and ultimately the
|
||||
focus of the dish.
|
||||
|
||||
In short: if you move the rocks, you can focus the dish. The platform even
|
||||
has a control panel on the side that lets you tilt it in one of four
|
||||
directions! The rounded rocks (O) will roll when the platform is tilted,
|
||||
while the cube-shaped rocks (#) will stay in place. You note the positions
|
||||
of all of the empty spaces (.) and rocks (your puzzle input). For example:
|
||||
|
||||
O....#....
|
||||
O.OO#....#
|
||||
.....##...
|
||||
OO.#O....O
|
||||
.O.....O#.
|
||||
O.#..O.#.#
|
||||
..O..#O..O
|
||||
.......O..
|
||||
#....###..
|
||||
#OO..#....
|
||||
|
||||
Start by tilting the lever so all of the rocks will slide north as far as
|
||||
they will go:
|
||||
|
||||
OOOO.#.O..
|
||||
OO..#....#
|
||||
OO..O##..O
|
||||
O..#.OO...
|
||||
........#.
|
||||
..#....#.#
|
||||
..O..#.O.O
|
||||
..O.......
|
||||
#....###..
|
||||
#....#....
|
||||
|
||||
You notice that the support beams along the north side of the platform are
|
||||
damaged; to ensure the platform doesn't collapse, you should calculate the
|
||||
total load on the north support beams.
|
||||
|
||||
The amount of load caused by a single rounded rock (O) is equal to the
|
||||
number of rows from the rock to the south edge of the platform, including
|
||||
the row the rock is on. (Cube-shaped rocks (#) don't contribute to load.)
|
||||
So, the amount of load caused by each rock in each row is as follows:
|
||||
|
||||
OOOO.#.O.. 10
|
||||
OO..#....# 9
|
||||
OO..O##..O 8
|
||||
O..#.OO... 7
|
||||
........#. 6
|
||||
..#....#.# 5
|
||||
..O..#.O.O 4
|
||||
..O....... 3
|
||||
#....###.. 2
|
||||
#....#.... 1
|
||||
|
||||
The total load is the sum of the load caused by all of the rounded rocks.
|
||||
In this example, the total load is 136.
|
||||
|
||||
Tilt the platform so that the rounded rocks all roll north. Afterward,
|
||||
what is the total load on the north support beams?
|
||||
|
||||
Your puzzle answer was 108813.
|
||||
|
||||
--- Part Two ---
|
||||
|
||||
The parabolic reflector dish deforms, but not in a way that focuses the
|
||||
beam. To do that, you'll need to move the rocks to the edges of the
|
||||
platform. Fortunately, a button on the side of the control panel labeled
|
||||
"spin cycle" attempts to do just that!
|
||||
|
||||
Each cycle tilts the platform four times so that the rounded rocks roll
|
||||
north, then west, then south, then east. After each tilt, the rounded
|
||||
rocks roll as far as they can before the platform tilts in the next
|
||||
direction. After one cycle, the platform will have finished rolling the
|
||||
rounded rocks in those four directions in that order.
|
||||
|
||||
Here's what happens in the example above after each of the first few
|
||||
cycles:
|
||||
|
||||
After 1 cycle:
|
||||
.....#....
|
||||
....#...O#
|
||||
...OO##...
|
||||
.OO#......
|
||||
.....OOO#.
|
||||
.O#...O#.#
|
||||
....O#....
|
||||
......OOOO
|
||||
#...O###..
|
||||
#..OO#....
|
||||
|
||||
After 2 cycles:
|
||||
.....#....
|
||||
....#...O#
|
||||
.....##...
|
||||
..O#......
|
||||
.....OOO#.
|
||||
.O#...O#.#
|
||||
....O#...O
|
||||
.......OOO
|
||||
#..OO###..
|
||||
#.OOO#...O
|
||||
|
||||
After 3 cycles:
|
||||
.....#....
|
||||
....#...O#
|
||||
.....##...
|
||||
..O#......
|
||||
.....OOO#.
|
||||
.O#...O#.#
|
||||
....O#...O
|
||||
.......OOO
|
||||
#...O###.O
|
||||
#.OOO#...O
|
||||
|
||||
This process should work if you leave it running long enough, but you're
|
||||
still worried about the north support beams. To make sure they'll survive
|
||||
for a while, you need to calculate the total load on the north support
|
||||
beams after 1000000000 cycles.
|
||||
|
||||
In the above example, after 1000000000 cycles, the total load on the north
|
||||
support beams is 64.
|
||||
|
||||
Run the spin cycle for 1000000000 cycles. Afterward, what is the total
|
||||
load on the north support beams?
|
||||
|
||||
Your puzzle answer was 104533.
|
||||
|
||||
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://www.janestreet.com/
|
||||
16. https://en.wikipedia.org/wiki/Parabolic_reflector
|
||||
17. https://adventofcode.com/2023
|
||||
18. https://adventofcode.com/2023/day/14/input
|
||||
19. https://twitter.com/intent/tweet?text=I%27ve+completed+%22Parabolic+Reflector+Dish%22+%2D+Day+14+%2D+Advent+of+Code+2023&url=https%3A%2F%2Fadventofcode%2Ecom%2F2023%2Fday%2F14&related=ericwastl&hashtags=AdventOfCode
|
||||
20. javascript:void(0);
|
Reference in New Issue
Block a user