170 lines
4.4 KiB
Org Mode
170 lines
4.4 KiB
Org Mode
** --- Day 5: Supply Stacks ---
|
|
The expedition can depart as soon as the final supplies have been
|
|
unloaded from the ships. Supplies are stored in stacks of marked
|
|
/crates/, but because the needed supplies are buried under many other
|
|
crates, the crates need to be rearranged.
|
|
|
|
The ship has a /giant cargo crane/ capable of moving crates between
|
|
stacks. To ensure none of the crates get crushed or fall over, the crane
|
|
operator will rearrange them in a series of carefully-planned steps.
|
|
After the crates are rearranged, the desired crates will be at the top
|
|
of each stack.
|
|
|
|
The Elves don't want to interrupt the crane operator during this
|
|
delicate procedure, but they forgot to ask her /which/ crate will end up
|
|
where, and they want to be ready to unload them as soon as possible so
|
|
they can embark.
|
|
|
|
They do, however, have a drawing of the starting stacks of crates /and/
|
|
the rearrangement procedure (your puzzle input). For example:
|
|
|
|
#+begin_example
|
|
[D]
|
|
[N] [C]
|
|
[Z] [M] [P]
|
|
1 2 3
|
|
|
|
move 1 from 2 to 1
|
|
move 3 from 1 to 3
|
|
move 2 from 2 to 1
|
|
move 1 from 1 to 2
|
|
#+end_example
|
|
|
|
In this example, there are three stacks of crates. Stack 1 contains two
|
|
crates: crate =Z= is on the bottom, and crate =N= is on top. Stack 2
|
|
contains three crates; from bottom to top, they are crates =M=, =C=, and
|
|
=D=. Finally, stack 3 contains a single crate, =P=.
|
|
|
|
Then, the rearrangement procedure is given. In each step of the
|
|
procedure, a quantity of crates is moved from one stack to a different
|
|
stack. In the first step of the above rearrangement procedure, one crate
|
|
is moved from stack 2 to stack 1, resulting in this configuration:
|
|
|
|
#+begin_example
|
|
[D]
|
|
[N] [C]
|
|
[Z] [M] [P]
|
|
1 2 3
|
|
#+end_example
|
|
|
|
In the second step, three crates are moved from stack 1 to stack 3.
|
|
Crates are moved /one at a time/, so the first crate to be moved (=D=)
|
|
ends up below the second and third crates:
|
|
|
|
#+begin_example
|
|
[Z]
|
|
[N]
|
|
[C] [D]
|
|
[M] [P]
|
|
1 2 3
|
|
#+end_example
|
|
|
|
Then, both crates are moved from stack 2 to stack 1. Again, because
|
|
crates are moved /one at a time/, crate =C= ends up below crate =M=:
|
|
|
|
#+begin_example
|
|
[Z]
|
|
[N]
|
|
[M] [D]
|
|
[C] [P]
|
|
1 2 3
|
|
#+end_example
|
|
|
|
Finally, one crate is moved from stack 1 to stack 2:
|
|
|
|
#+begin_example
|
|
[Z]
|
|
[N]
|
|
[D]
|
|
[C] [M] [P]
|
|
1 2 3
|
|
#+end_example
|
|
|
|
The Elves just need to know /which crate will end up on top of each
|
|
stack/; in this example, the top crates are =C= in stack 1, =M= in stack
|
|
2, and =Z= in stack 3, so you should combine these together and give the
|
|
Elves the message =CMZ=.
|
|
|
|
/After the rearrangement procedure completes, what crate ends up on top
|
|
of each stack?/
|
|
|
|
Your puzzle answer was =VQZNJMWTR=.
|
|
|
|
** --- Part Two ---
|
|
As you watch the crane operator expertly rearrange the crates, you
|
|
notice the process isn't following your prediction.
|
|
|
|
Some mud was covering the writing on the side of the crane, and you
|
|
quickly wipe it away. The crane isn't a CrateMover 9000 - it's a
|
|
/CrateMover 9001/.
|
|
|
|
The CrateMover 9001 is notable for many new and exciting features: air
|
|
conditioning, leather seats, an extra cup holder, and /the ability to
|
|
pick up and move multiple crates at once/.
|
|
|
|
Again considering the example above, the crates begin in the same
|
|
configuration:
|
|
|
|
#+begin_example
|
|
[D]
|
|
[N] [C]
|
|
[Z] [M] [P]
|
|
1 2 3
|
|
#+end_example
|
|
|
|
Moving a single crate from stack 2 to stack 1 behaves the same as
|
|
before:
|
|
|
|
#+begin_example
|
|
[D]
|
|
[N] [C]
|
|
[Z] [M] [P]
|
|
1 2 3
|
|
#+end_example
|
|
|
|
However, the action of moving three crates from stack 1 to stack 3 means
|
|
that those three moved crates /stay in the same order/, resulting in
|
|
this new configuration:
|
|
|
|
#+begin_example
|
|
[D]
|
|
[N]
|
|
[C] [Z]
|
|
[M] [P]
|
|
1 2 3
|
|
#+end_example
|
|
|
|
Next, as both crates are moved from stack 2 to stack 1, they /retain
|
|
their order/ as well:
|
|
|
|
#+begin_example
|
|
[D]
|
|
[N]
|
|
[C] [Z]
|
|
[M] [P]
|
|
1 2 3
|
|
#+end_example
|
|
|
|
Finally, a single crate is still moved from stack 1 to stack 2, but now
|
|
it's crate =C= that gets moved:
|
|
|
|
#+begin_example
|
|
[D]
|
|
[N]
|
|
[Z]
|
|
[M] [C] [P]
|
|
1 2 3
|
|
#+end_example
|
|
|
|
In this example, the CrateMover 9001 has put the crates in a totally
|
|
different order: =MCD=.
|
|
|
|
Before the rearrangement process finishes, update your simulation so
|
|
that the Elves know where they should stand to be ready to unload the
|
|
final supplies. /After the rearrangement procedure completes, what crate
|
|
ends up on top of each stack?/
|
|
|
|
Your puzzle answer was =NLCDCLVMQ=.
|
|
|
|
Both parts of this puzzle are complete! They provide two gold stars: **
|