AdventOfCode/2024/19/19.md

86 lines
3.4 KiB
Markdown
Raw Normal View History

2024-12-19 18:04:23 +01:00
## \-\-- Day 19: Linen Layout \-\--
Today, The Historians take you up to the [hot springs](/2023/day/12) on
Gear Island! Very
[suspiciously](https://www.youtube.com/watch?v=ekL881PJMjI),
absolutely nothing goes wrong as they begin their careful search of the
vast field of helixes.
Could this *finally* be your chance to visit the
[onsen](https://en.wikipedia.org/wiki/Onsen) next door?
Only one way to find out.
After a brief conversation with the reception staff at the onsen front
desk, you discover that you don\'t have the right kind of money to pay
the admission fee. However, before you can leave, the staff get your
attention. Apparently, they\'ve heard about how you helped at the hot
springs, and they\'re willing to make a deal: if you can simply help
them *arrange their towels*, they\'ll let you in for *free*!
Every towel at this onsen is marked with a *pattern of colored stripes*.
There are only a few patterns, but for any particular pattern, the staff
can get you as many towels with that pattern as you need. Each
stripe
can be *white* (`w`), *blue* (`u`), *black* (`b`), *red* (`r`), or
*green* (`g`). So, a towel with the pattern `ggr` would have a green
stripe, a green stripe, and then a red stripe, in that order. (You
can\'t reverse a pattern by flipping a towel upside-down, as that would
cause the onsen logo to face the wrong way.)
The Official Onsen Branding Expert has produced a list of *designs* -
each a long sequence of stripe colors - that they would like to be able
to display. You can use any towels you want, but all of the towels\'
stripes must exactly match the desired design. So, to display the design
`rgrgr`, you could use two `rg` towels and then an `r` towel, an `rgr`
towel and then a `gr` towel, or even a single massive `rgrgr` towel
(assuming such towel patterns were actually available).
To start, collect together all of the available towel patterns and the
list of desired designs (your puzzle input). For example:
r, wr, b, g, bwu, rb, gb, br
brwrr
bggr
gbbr
rrbgbr
ubwu
bwurrg
brgr
bbrgwb
The first line indicates the available towel patterns; in this example,
the onsen has unlimited towels with a single red stripe (`r`), unlimited
towels with a white stripe and then a red stripe (`wr`), and so on.
After the blank line, the remaining lines each describe a design the
onsen would like to be able to display. In this example, the first
design (`brwrr`) indicates that the onsen would like to be able to
display a black stripe, a red stripe, a white stripe, and then two red
stripes, in that order.
Not all designs will be possible with the available towels. In the above
example, the designs are possible or impossible as follows:
- `brwrr` can be made with a `br` towel, then a `wr` towel, and then
finally an `r` towel.
- `bggr` can be made with a `b` towel, two `g` towels, and then an `r`
towel.
- `gbbr` can be made with a `gb` towel and then a `br` towel.
- `rrbgbr` can be made with `r`, `rb`, `g`, and `br`.
- `ubwu` is *impossible*.
- `bwurrg` can be made with `bwu`, `r`, `r`, and `g`.
- `brgr` can be made with `br`, `g`, and `r`.
- `bbrgwb` is *impossible*.
In this example, `6` of the eight designs are possible with the
available towel patterns.
To get into the onsen as soon as possible, consult your list of towel
patterns and desired designs carefully. *How many designs are possible?*
To begin, [get your puzzle input](19/input).
Answer: