108 lines
4.1 KiB
Plaintext
108 lines
4.1 KiB
Plaintext
|
Advent of Code
|
|||
|
|
|||
|
br0xen 40*
|
|||
|
|
|||
|
• [About]
|
|||
|
• [Stats]
|
|||
|
• [Leaderboard]
|
|||
|
• [Settings]
|
|||
|
• [Log out]
|
|||
|
|
|||
|
--- Day 19: Medicine for Rudolph ---
|
|||
|
|
|||
|
Rudolph the Red-Nosed Reindeer is sick! His nose isn't shining very brightly, and he needs
|
|||
|
medicine.
|
|||
|
|
|||
|
Red-Nosed Reindeer biology isn't similar to regular reindeer biology; Rudolph is going to need
|
|||
|
custom-made medicine. Unfortunately, Red-Nosed Reindeer chemistry isn't similar to regular
|
|||
|
reindeer chemistry, either.
|
|||
|
|
|||
|
The North Pole is equipped with a Red-Nosed Reindeer nuclear fusion/fission plant, capable of
|
|||
|
constructing any Red-Nosed Reindeer molecule you need. It works by starting with some input
|
|||
|
molecule and then doing a series of replacements, one per step, until it has the right
|
|||
|
molecule.
|
|||
|
|
|||
|
However, the machine has to be calibrated before it can be used. Calibration involves
|
|||
|
determining the number of molecules that can be generated in one step from a given starting
|
|||
|
point.
|
|||
|
|
|||
|
For example, imagine a simpler machine that supports only the following replacements:
|
|||
|
|
|||
|
H => HO
|
|||
|
H => OH
|
|||
|
O => HH
|
|||
|
|
|||
|
Given the replacements above and starting with HOH, the following molecules could be generated:
|
|||
|
|
|||
|
• HOOH (via H => HO on the first H).
|
|||
|
• HOHO (via H => HO on the second H).
|
|||
|
• OHOH (via H => OH on the first H).
|
|||
|
• HOOH (via H => OH on the second H).
|
|||
|
• HHHH (via O => HH).
|
|||
|
|
|||
|
So, in the example above, there are 4 distinct molecules (not five, because HOOH appears twice)
|
|||
|
after one replacement from HOH. Santa's favorite molecule, HOHOHO, can become 7 distinct
|
|||
|
molecules (over nine replacements: six from H, and three from O).
|
|||
|
|
|||
|
The machine replaces without regard for the surrounding characters. For example, given the
|
|||
|
string H2O, the transition H => OO would result in OO2O.
|
|||
|
|
|||
|
Your puzzle input describes all of the possible replacements and, at the bottom, the medicine
|
|||
|
molecule for which you need to calibrate the machine. How many distinct molecules can be
|
|||
|
created after all the different ways you can do one replacement on the medicine molecule?
|
|||
|
|
|||
|
Your puzzle answer was 518.
|
|||
|
|
|||
|
--- Part Two ---
|
|||
|
|
|||
|
Now that the machine is calibrated, you're ready to begin molecule fabrication.
|
|||
|
|
|||
|
Molecule fabrication always begins with just a single electron, e, and applying replacements
|
|||
|
one at a time, just like the ones during calibration.
|
|||
|
|
|||
|
For example, suppose you have the following replacements:
|
|||
|
|
|||
|
e => H
|
|||
|
e => O
|
|||
|
H => HO
|
|||
|
H => OH
|
|||
|
O => HH
|
|||
|
|
|||
|
If you'd like to make HOH, you start with e, and then make the following replacements:
|
|||
|
|
|||
|
• e => O to get O
|
|||
|
• O => HH to get HH
|
|||
|
• H => OH (on the second H) to get HOH
|
|||
|
|
|||
|
So, you could make HOH after 3 steps. Santa's favorite molecule, HOHOHO, can be made in 6
|
|||
|
steps.
|
|||
|
|
|||
|
How long will it take to make the medicine? Given the available replacements and the medicine
|
|||
|
molecule in your puzzle input, what is the fewest number of steps to go from e to the medicine
|
|||
|
molecule?
|
|||
|
|
|||
|
Your puzzle answer was 200.
|
|||
|
|
|||
|
Both parts of this puzzle are complete! They provide two gold stars: **
|
|||
|
|
|||
|
At this point, you should return to your advent calendar and try another puzzle.
|
|||
|
|
|||
|
If you still want to see it, you can get your puzzle input.
|
|||
|
|
|||
|
You can also [Shareon Twitter Google+ Reddit] this puzzle.
|
|||
|
|
|||
|
References
|
|||
|
|
|||
|
Visible links
|
|||
|
. http://adventofcode.com/
|
|||
|
. http://adventofcode.com/about
|
|||
|
. http://adventofcode.com/stats
|
|||
|
. http://adventofcode.com/leaderboard
|
|||
|
. http://adventofcode.com/settings
|
|||
|
. http://adventofcode.com/auth/logout
|
|||
|
. http://adventofcode.com/
|
|||
|
. http://adventofcode.com/day/19/input
|
|||
|
. https://twitter.com/intent/tweet?text=I%27ve+completed+%22Medicine+for+Rudolph%22+%2D+Day+19+%2D+Advent+of+Code&url=http%3A%2F%2Fadventofcode%2Ecom%2Fday%2F19&related=ericwastl&hashtags=AdventOfCode
|
|||
|
. https://plus.google.com/share?url=http%3A%2F%2Fadventofcode%2Ecom%2Fday%2F19
|
|||
|
. http://www.reddit.com/submit?url=http%3A%2F%2Fadventofcode%2Ecom%2Fday%2F19&title=I%27ve+completed+%22Medicine+for+Rudolph%22+%2D+Day+19+%2D+Advent+of+Code
|