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