1
1
mirror of https://github.com/theoludwig/advent_of_code_2023.git synced 2024-11-09 22:08:53 +01:00
advent_of_code_2023/day_8
2024-02-08 14:23:24 +01:00
..
src feat: add day 8 - part 1 2024-02-08 13:58:09 +01:00
.gitignore feat: add day 8 - part 1 2024-02-08 13:58:09 +01:00
Cargo.toml feat: add day 8 - part 1 2024-02-08 13:58:09 +01:00
input_example_1.txt chore: simplify external tools dependency management 2024-02-08 14:23:24 +01:00
input_example_2.txt feat: add day 8 - part 1 2024-02-08 13:58:09 +01:00
input.txt feat: add day 8 - part 1 2024-02-08 13:58:09 +01:00
README.md feat: add day 8 - part 1 2024-02-08 13:58:09 +01:00

- Day 8: Haunted Wasteland -

Source: https://adventofcode.com/2023/day/8

Instructions - Part 1

You're still riding a camel across Desert Island when you spot a sandstorm quickly approaching. When you turn to warn the Elf, she disappears before your eyes! To be fair, she had just finished warning you about ghosts a few minutes ago.

One of the camel's pouches is labeled "maps" - sure enough, it's full of documents (your puzzle input) about how to navigate the desert. At least, you're pretty sure that's what they are; one of the documents contains a list of left/right instructions, and the rest of the documents seem to describe some kind of network of labeled nodes.

It seems like you're meant to use the left/right instructions to navigate the network. Perhaps if you have the camel follow the same instructions, you can escape the haunted wasteland!

After examining the maps for a bit, two nodes stick out: AAA and ZZZ. You feel like AAA is where you are now, and you have to follow the left/right instructions until you reach ZZZ.

This format defines each node of the network individually. For example:

RL

AAA = (BBB, CCC)
BBB = (DDD, EEE)
CCC = (ZZZ, GGG)
DDD = (DDD, DDD)
EEE = (EEE, EEE)
GGG = (GGG, GGG)
ZZZ = (ZZZ, ZZZ)

Starting with AAA, you need to look up the next element based on the next left/right instruction in your input. In this example, start with AAA and go right (R) by choosing the right element of AAA, CCC. Then, L means to choose the left element of CCC, ZZZ. By following the left/right instructions, you reach ZZZ in 2 steps.

Of course, you might not find ZZZ right away. If you run out of left/right instructions, repeat the whole sequence of instructions as necessary: RL really means RLRLRLRLRLRLRLRL... and so on. For example, here is a situation that takes 6 steps to reach ZZZ:

LLR

AAA = (BBB, BBB)
BBB = (AAA, ZZZ)
ZZZ = (ZZZ, ZZZ)

Starting at AAA, follow the left/right instructions. How many steps are required to reach ZZZ?