2024(6): pull in puzzle
This commit is contained in:
108
2024/06/README.md
Normal file
108
2024/06/README.md
Normal file
@ -0,0 +1,108 @@
|
|||||||
|
# Day 6: Guard Gallivant
|
||||||
|
|
||||||
|
[https://adventofcode.com/2024/day/6](https://adventofcode.com/2024/day/6)
|
||||||
|
|
||||||
|
## Description
|
||||||
|
|
||||||
|
### Part One
|
||||||
|
|
||||||
|
The Historians use their fancy [device](https://adventofcode.com/2024/day/4) again, this time to whisk you all away to the North Pole prototype suit manufacturing lab... in the year [1518](https://adventofcode.com/2018/day/5)! It turns out that having direct access to history is very convenient for a group of historians.
|
||||||
|
|
||||||
|
You still have to be careful of time paradoxes, and so it will be important to avoid anyone from 1518 while The Historians search for the Chief. Unfortunately, a single _guard_ is patrolling this part of the lab.
|
||||||
|
|
||||||
|
Maybe you can work out where the guard will go ahead of time so that The Historians can search safely?
|
||||||
|
|
||||||
|
You start by making a map (your puzzle input) of the situation. For example:
|
||||||
|
|
||||||
|
....#.....
|
||||||
|
.........#
|
||||||
|
..........
|
||||||
|
..#.......
|
||||||
|
.......#..
|
||||||
|
..........
|
||||||
|
.#..^.....
|
||||||
|
........#.
|
||||||
|
#.........
|
||||||
|
......#...
|
||||||
|
|
||||||
|
|
||||||
|
The map shows the current position of the guard with `^` (to indicate the guard is currently facing _up_ from the perspective of the map). Any _obstructions_ - crates, desks, alchemical reactors, etc. - are shown as `#`.
|
||||||
|
|
||||||
|
Lab guards in 1518 follow a very strict patrol protocol which involves repeatedly following these steps:
|
||||||
|
|
||||||
|
* If there is something directly in front of you, turn right 90 degrees.
|
||||||
|
* Otherwise, take a step forward.
|
||||||
|
|
||||||
|
Following the above protocol, the guard moves up several times until she reaches an obstacle (in this case, a pile of failed suit prototypes):
|
||||||
|
|
||||||
|
....#.....
|
||||||
|
....^....#
|
||||||
|
..........
|
||||||
|
..#.......
|
||||||
|
.......#..
|
||||||
|
..........
|
||||||
|
.#........
|
||||||
|
........#.
|
||||||
|
#.........
|
||||||
|
......#...
|
||||||
|
|
||||||
|
|
||||||
|
Because there is now an obstacle in front of the guard, she turns right before continuing straight in her new facing direction:
|
||||||
|
|
||||||
|
....#.....
|
||||||
|
........>#
|
||||||
|
..........
|
||||||
|
..#.......
|
||||||
|
.......#..
|
||||||
|
..........
|
||||||
|
.#........
|
||||||
|
........#.
|
||||||
|
#.........
|
||||||
|
......#...
|
||||||
|
|
||||||
|
|
||||||
|
Reaching another obstacle (a spool of several _very_ long polymers), she turns right again and continues downward:
|
||||||
|
|
||||||
|
....#.....
|
||||||
|
.........#
|
||||||
|
..........
|
||||||
|
..#.......
|
||||||
|
.......#..
|
||||||
|
..........
|
||||||
|
.#......v.
|
||||||
|
........#.
|
||||||
|
#.........
|
||||||
|
......#...
|
||||||
|
|
||||||
|
|
||||||
|
This process continues for a while, but the guard eventually leaves the mapped area (after walking past a tank of universal solvent):
|
||||||
|
|
||||||
|
....#.....
|
||||||
|
.........#
|
||||||
|
..........
|
||||||
|
..#.......
|
||||||
|
.......#..
|
||||||
|
..........
|
||||||
|
.#........
|
||||||
|
........#.
|
||||||
|
#.........
|
||||||
|
......#v..
|
||||||
|
|
||||||
|
|
||||||
|
By predicting the guard's route, you can determine which specific positions in the lab will be in the patrol path. _Including the guard's starting position_, the positions visited by the guard before leaving the area are marked with an `X`:
|
||||||
|
|
||||||
|
....#.....
|
||||||
|
....XXXXX#
|
||||||
|
....X...X.
|
||||||
|
..#.X...X.
|
||||||
|
..XXXXX#X.
|
||||||
|
..X.X.X.X.
|
||||||
|
.#XXXXXXX.
|
||||||
|
.XXXXXXX#.
|
||||||
|
#XXXXXXX..
|
||||||
|
......#X..
|
||||||
|
|
||||||
|
|
||||||
|
In this example, the guard will visit _`41`_ distinct positions on your map.
|
||||||
|
|
||||||
|
Predict the path of the guard. _How many distinct positions will the guard visit before leaving the mapped area?_
|
||||||
130
2024/06/input
Normal file
130
2024/06/input
Normal file
@ -0,0 +1,130 @@
|
|||||||
|
................#.................#.#...........................#.#..................#............................................
|
||||||
|
..........#................#...........#...................#.#....................................................................
|
||||||
|
....#......#......#............#.#........#..........#.......#.......#...#........#..........#.........................#..........
|
||||||
|
..................#............#.....##...............#..#.....................#...........#......................................
|
||||||
|
#.........#.............................................................#........#............#........#.....#...#...........#....
|
||||||
|
.....#...#......#..................................................#........#..................#......#.......................#...
|
||||||
|
#.................................................#......................#......#...................................#.............
|
||||||
|
...#.#...#.....................................#.......................#.........#..................................#....#........
|
||||||
|
..............................................#..............#...#...........##..........................#.......#............#...
|
||||||
|
........#.#.......#.................##.......................#..........#...........................#...#.........................
|
||||||
|
.................#..............................#.................#............#....#.....#.......................................
|
||||||
|
.................................................................#......#............#.#.#..................#.....................
|
||||||
|
.#..........#......#...#.......#..........................#....................#.#.............................#..................
|
||||||
|
...............#.....##.......#..#...###......#......................#.................................#.#......#..#..............
|
||||||
|
#.....................#......................................#..........#...............#........#...............#...#.#..........
|
||||||
|
.......................................#..................#.........................#.............................................
|
||||||
|
.......................#...............................................................#........................#...........#.....
|
||||||
|
......#....#..........................................................................................#..........#................
|
||||||
|
........#.......................................#..........................#.............##.........#............#.#.........#....
|
||||||
|
......#........#........................................................#..........................#..............................
|
||||||
|
....................#.................................................#.....................#......#..#...#....................#..
|
||||||
|
...........#....................##.....#...#............#...#......................................#.....#.......#.........#....#.
|
||||||
|
#..............#.................#......#..................#...................#......#...........#...............................
|
||||||
|
.......#.......#.........................................#.....#..#.................................................#..........#..
|
||||||
|
..#..................#.......................#..#..#...#..........................#.........#...##......#..........#.#..#.........
|
||||||
|
..#.........#....................#...........................#....................#..........................#................#..#
|
||||||
|
......#.....................................................#..#.......#.............#...................#......................#.
|
||||||
|
.....#..................................................................#...#.....................#......................#.#......
|
||||||
|
......#..............#...................................#.......................#...................................#...##.......
|
||||||
|
...........#..........#....................................................................#........................#.............
|
||||||
|
#.......................................#..........................#........#......#......................##......................
|
||||||
|
.............#...#..........#......#..........#.#......................................................................#..........
|
||||||
|
........................................................#....#...#......##..........................#..........#..................
|
||||||
|
.#...#.....#..........#....#...........................................#........#....................................#............
|
||||||
|
....#....................................##.......#...........................................#.......#...........................
|
||||||
|
...........#.............#........................................................#...#................#........#.................
|
||||||
|
.....#.#........................................#....................#.........#..................................................
|
||||||
|
.........#............#..............................#...#..............#...........................#...............#.....#.......
|
||||||
|
......................#........................................#.#..........#...#..#......................#.......................
|
||||||
|
##...........#..............#......#....................#..........................#.......................#.......#.......#......
|
||||||
|
....#..#.........................................................#.....#..#.........................................#.....#.......
|
||||||
|
....#......##................#......................................#.......................................#..................#..
|
||||||
|
..............................#............................#..................#.......#.......#..................#...#............
|
||||||
|
......................................................#............................#..............................................
|
||||||
|
.......#.............................#......#.................................#...................................................
|
||||||
|
..................................................................................................................#...............
|
||||||
|
.......................#.....#...........##........................................#..............................#...............
|
||||||
|
..........................#................................................................#..................#...................
|
||||||
|
..........................#..................#........#..............#.#..#...................##..................................
|
||||||
|
..................#............................................................................................#..................
|
||||||
|
.......................#..........#...##................#.........................................................................
|
||||||
|
...............#.....................................#............................................#...............................
|
||||||
|
....#..................................................................................#........#.................................
|
||||||
|
..#................#.....................................................................#...#....................................
|
||||||
|
..........#.............#.........#......#................#......#.........#........#.......................#.....................
|
||||||
|
..........................................................................#.................................#.....#....#.#........
|
||||||
|
....#..........#......................................#......................................................#.......#....#.....#.
|
||||||
|
.....#...............................#............................#........................................................#......
|
||||||
|
.............................................................................#.......................#....................#..#....
|
||||||
|
................#.............................................................#...................................................
|
||||||
|
.....#................#.......#....................#............#.......#.....#.................................#.................
|
||||||
|
...........................................................................................................#.#....................
|
||||||
|
.....#...............................................#...................................................................#..#.....
|
||||||
|
................#..............................#.............#.#..............................................................#...
|
||||||
|
..#............#...................#..................................................................#...............#...#....#..
|
||||||
|
..........#...............#...............#............................................#......#...##........#..#..................
|
||||||
|
......#..###..........................................................................................#................#..........
|
||||||
|
..........#........#.....#.......................#.........................................#.#........#.#.........................
|
||||||
|
.....#............................................................#.....#..........................#..............................
|
||||||
|
...............................................................#..............#........................................#..........
|
||||||
|
.................................................#....#...#....................................#..#........................#......
|
||||||
|
.................#..........#......#......................#.......#...................#.#.........................................
|
||||||
|
.#............................................................................#..............#..............................#..#..
|
||||||
|
..#........#...#..........#.................#...#...................................................#...#............#............
|
||||||
|
...........#.......#..#...............................................................................#...........................
|
||||||
|
.#.#..#...........##...................#...................................#...........#...............................#..........
|
||||||
|
......................................................................#............#.....................................#...#....
|
||||||
|
....#............#.#.#................#............#....#...#......#....................................................#.........
|
||||||
|
.......................................................................................#.....................................#....
|
||||||
|
.......................................#..................#........#................................................#.............
|
||||||
|
.........................................#.....#..........#.......##..................................#................#..........
|
||||||
|
..............#.............#............#..........................................................#.............................
|
||||||
|
.#...................#...#..........................................................#........#........#..........................#
|
||||||
|
..#..............................#.....................................#.................#.............#...........#..............
|
||||||
|
.................................#........................#.#....#......#....................#....................................
|
||||||
|
.#..................................................#.....#............................#..........#..................#.......#....
|
||||||
|
.....................#.......................^............#...#...#..............#................#...............................
|
||||||
|
.........#....................................#....................#...........#...........#..............#...................#...
|
||||||
|
............................#...........#....................#.............#.......#.......................#...#....#.............
|
||||||
|
............#.................#...........#..................................................................#............#.......
|
||||||
|
...........#....................#.................................................#......#.#....................#.................
|
||||||
|
..............................................................#..........#........#....#.........#................................
|
||||||
|
...............#.........#......#..........#.#.............................................................................#....#.
|
||||||
|
...............##...##..........................................................................................#.................
|
||||||
|
..........................#.#...........................#......................#...............#..................................
|
||||||
|
.....#...#..................#...........#....#.........#............................#.............................................
|
||||||
|
.........................................................................................#...................#...#................
|
||||||
|
............#.....................#...........#..................................................................#................
|
||||||
|
.#.............................#............................#..........#......##...................................#.#............
|
||||||
|
............#.........................................#...............................................#.#....#....................
|
||||||
|
.........................................................#..#.#...............#......#....#........#..........................#...
|
||||||
|
............................#..#.................#................................................................#...............
|
||||||
|
............................#.........................................................................#....#..#............#..#...
|
||||||
|
....#........#....#....#..#..............................#...#......................#.......................#............#........
|
||||||
|
..#...............#............................................................................................................#..
|
||||||
|
#.......................#...#............#..................................................#.........................#...........
|
||||||
|
.....#.................#..#.............................................#...................................................##....
|
||||||
|
...............#....................................#................#.........................#.#...........................#.#..
|
||||||
|
.................#....#....#..............#....#.#....#...............#......................#...............#..................#.
|
||||||
|
...........#...............................................................................#....#.................#...............
|
||||||
|
...............#............................................###.#.#.#........#...................................#....#...........
|
||||||
|
................#.................#........#............#..............#.....................#.............#......................
|
||||||
|
....................................#.....................................................#....#..................................
|
||||||
|
..#..#.............#......#.#..................#........................................#..........#...#..........................
|
||||||
|
...............#........................#...............................#.............#...................#..#....#...............
|
||||||
|
......#...........................#..............................................#..............................#...............#.
|
||||||
|
...........#..............#................#....#..........#................#.......#..............#.........#.................#..
|
||||||
|
......#....................................................................................................#......................
|
||||||
|
...........#.............#...............#..........#....#.#...##..................#....................#.........................
|
||||||
|
.......................................................#.#.....................................#..................#.......#.......
|
||||||
|
...............#...............#...........................................................................#..................#...
|
||||||
|
...............#......#.........#..................#.............................#..............................#.................
|
||||||
|
...............#..........#..#.......#.............#............................#.#............................#..................
|
||||||
|
..........#................................#..#...................................................................................
|
||||||
|
..#................#............#........#...................................#...............##.................##....#.......#...
|
||||||
|
..#.....................................................................#.............................................#.#.........
|
||||||
|
#...#...#.......................##............#..............#.........#......................#........#.#........................
|
||||||
|
..............................#......#.......#.........#...#..#.......................................................#.#.........
|
||||||
|
.#..................#.#................................#..........#.......#..........................#............................
|
||||||
|
...............#.....................#...#..........................................#..........#......#...........................
|
||||||
Reference in New Issue
Block a user