General mess! Might pick at this over the next year.
This commit is contained in:
73
2023/23/README.md
Executable file
73
2023/23/README.md
Executable file
@@ -0,0 +1,73 @@
|
||||
## \-\-\- Day 23: A Long Walk ---
|
||||
|
||||
The Elves resume water filtering operations! Clean water starts flowing over the edge of Island Island.
|
||||
|
||||
They offer to help _you_ go over the edge of Island Island, too! Just hold on tight to one end of this impossibly long rope and they'll lower you down a safe distance from the massive waterfall you just created.
|
||||
|
||||
As you finally reach Snow Island, you see that the water isn't really reaching the ground: it's being _absorbed by the air_ itself. It looks like you'll finally have a little downtime while the moisture builds up to snow-producing levels. Snow Island is pretty scenic, even without any snow; why not take a walk?
|
||||
|
||||
There's a map of nearby hiking trails (your puzzle input) that indicates _paths_ ( `.`), _forest_ ( `#`), and steep _slopes_ ( `^`, `>`, `v`, and `<`).
|
||||
|
||||
For example:
|
||||
|
||||
```
|
||||
#.#####################
|
||||
#.......#########...###
|
||||
#######.#########.#.###
|
||||
###.....#.>.>.###.#.###
|
||||
###v#####.#v#.###.#.###
|
||||
###.>...#.#.#.....#...#
|
||||
###v###.#.#.#########.#
|
||||
###...#.#.#.......#...#
|
||||
#####.#.#.#######.#.###
|
||||
#.....#.#.#.......#...#
|
||||
#.#####.#.#.#########v#
|
||||
#.#...#...#...###...>.#
|
||||
#.#.#v#######v###.###v#
|
||||
#...#.>.#...>.>.#.###.#
|
||||
#####v#.#.###v#.#.###.#
|
||||
#.....#...#...#.#.#...#
|
||||
#.#########.###.#.#.###
|
||||
#...###...#...#...#.###
|
||||
###.###.#.###v#####v###
|
||||
#...#...#.#.>.>.#.>.###
|
||||
#.###.###.#.###.#.#v###
|
||||
#.....###...###...#...#
|
||||
#####################.#
|
||||
|
||||
```
|
||||
|
||||
You're currently on the single path tile in the top row; your goal is to reach the single path tile in the bottom row. Because of all the mist from the waterfall, the slopes are probably quite _icy_; if you step onto a slope tile, your next step must be _downhill_ (in the direction the arrow is pointing). To make sure you have the most scenic hike possible, _never step onto the same tile twice_. What is the longest hike you can take?
|
||||
|
||||
In the example above, the longest hike you can take is marked with `O`, and your starting position is marked `S`:
|
||||
|
||||
```
|
||||
#S#####################
|
||||
#OOOOOOO#########...###
|
||||
#######O#########.#.###
|
||||
###OOOOO#OOO>.###.#.###
|
||||
###O#####O#O#.###.#.###
|
||||
###OOOOO#O#O#.....#...#
|
||||
###v###O#O#O#########.#
|
||||
###...#O#O#OOOOOOO#...#
|
||||
#####.#O#O#######O#.###
|
||||
#.....#O#O#OOOOOOO#...#
|
||||
#.#####O#O#O#########v#
|
||||
#.#...#OOO#OOO###OOOOO#
|
||||
#.#.#v#######O###O###O#
|
||||
#...#.>.#...>OOO#O###O#
|
||||
#####v#.#.###v#O#O###O#
|
||||
#.....#...#...#O#O#OOO#
|
||||
#.#########.###O#O#O###
|
||||
#...###...#...#OOO#O###
|
||||
###.###.#.###v#####O###
|
||||
#...#...#.#.>.>.#.>O###
|
||||
#.###.###.#.###.#.#O###
|
||||
#.....###...###...#OOO#
|
||||
#####################O#
|
||||
|
||||
```
|
||||
|
||||
This hike contains `94` steps. (The other possible hikes you could have taken were `90`, `86`, `82`, `82`, and `74` steps long.)
|
||||
|
||||
Find the longest hike you can take through the hiking trails listed on your map. _How many steps long is the longest hike?_
|
||||
24
2023/23/code.go
Normal file
24
2023/23/code.go
Normal file
@@ -0,0 +1,24 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"github.com/jpillora/puzzler/harness/aoc"
|
||||
)
|
||||
|
||||
func main() {
|
||||
aoc.Harness(run)
|
||||
}
|
||||
|
||||
// on code change, run will be executed 4 times:
|
||||
// 1. with: false (part1), and example input
|
||||
// 2. with: true (part2), and example input
|
||||
// 3. with: false (part1), and user input
|
||||
// 4. with: true (part2), and user input
|
||||
// the return value of each run is printed to stdout
|
||||
func run(part2 bool, input string) any {
|
||||
// when you're ready to do part 2, remove this "not implemented" block
|
||||
if part2 {
|
||||
return "not implemented"
|
||||
}
|
||||
// solve part 1 here
|
||||
return 42
|
||||
}
|
||||
23
2023/23/input-example.txt
Executable file
23
2023/23/input-example.txt
Executable file
@@ -0,0 +1,23 @@
|
||||
#.#####################
|
||||
#.......#########...###
|
||||
#######.#########.#.###
|
||||
###.....#.>.>.###.#.###
|
||||
###v#####.#v#.###.#.###
|
||||
###.>...#.#.#.....#...#
|
||||
###v###.#.#.#########.#
|
||||
###...#.#.#.......#...#
|
||||
#####.#.#.#######.#.###
|
||||
#.....#.#.#.......#...#
|
||||
#.#####.#.#.#########v#
|
||||
#.#...#...#...###...>.#
|
||||
#.#.#v#######v###.###v#
|
||||
#...#.>.#...>.>.#.###.#
|
||||
#####v#.#.###v#.#.###.#
|
||||
#.....#...#...#.#.#...#
|
||||
#.#########.###.#.#.###
|
||||
#...###...#...#...#.###
|
||||
###.###.#.###v#####v###
|
||||
#...#...#.#.>.>.#.>.###
|
||||
#.###.###.#.###.#.#v###
|
||||
#.....###...###...#...#
|
||||
#####################.#
|
||||
Reference in New Issue
Block a user