72 lines
2.7 KiB
Markdown
72 lines
2.7 KiB
Markdown
## \-\-- Day 5: Doesn\'t He Have Intern-Elves For This? \-\--
|
|
|
|
Santa needs help figuring out which strings in his text file are naughty
|
|
or nice.
|
|
|
|
A *nice string* is one with all of the following properties:
|
|
|
|
- It contains at least three vowels (`aeiou` only), like `aei`,
|
|
`xazegov`, or
|
|
`aeiouaeiouaeiou`{title="John Madden John Madden John Madden"}.
|
|
- It contains at least one letter that appears twice in a row, like
|
|
`xx`, `abcdde` (`dd`), or `aabbccdd` (`aa`, `bb`, `cc`, or `dd`).
|
|
- It does *not* contain the strings `ab`, `cd`, `pq`, or `xy`, even if
|
|
they are part of one of the other requirements.
|
|
|
|
For example:
|
|
|
|
- `ugknbfddgicrmopn` is nice because it has at least three vowels
|
|
(`u...i...o...`), a double letter (`...dd...`), and none of the
|
|
disallowed substrings.
|
|
- `aaa` is nice because it has at least three vowels and a double
|
|
letter, even though the letters used by different rules overlap.
|
|
- `jchzalrnumimnmhp` is naughty because it has no double letter.
|
|
- `haegwjzuvuyypxyu` is naughty because it contains the string `xy`.
|
|
- `dvszwmarrgswjxmb` is naughty because it contains only one vowel.
|
|
|
|
How many strings are nice?
|
|
|
|
Your puzzle answer was `236`.
|
|
|
|
## \-\-- Part Two \-\-- {#part2}
|
|
|
|
Realizing the error of his ways, Santa has switched to a better model of
|
|
determining whether a string is naughty or nice. None of the old rules
|
|
apply, as they are all clearly ridiculous.
|
|
|
|
Now, a nice string is one with all of the following properties:
|
|
|
|
- It contains a pair of any two letters that appears at least twice in
|
|
the string without overlapping, like `xyxy` (`xy`) or `aabcdefgaa`
|
|
(`aa`), but not like `aaa` (`aa`, but it overlaps).
|
|
- It contains at least one letter which repeats with exactly one
|
|
letter between them, like `xyx`, `abcdefeghi` (`efe`), or even
|
|
`aaa`.
|
|
|
|
For example:
|
|
|
|
- `qjhvhtzxzqqjkmpb` is nice because is has a pair that appears twice
|
|
(`qj`) and a letter that repeats with exactly one letter between
|
|
them (`zxz`).
|
|
- `xxyxx` is nice because it has a pair that appears twice and a
|
|
letter that repeats with one between, even though the letters used
|
|
by each rule overlap.
|
|
- `uurcxstgmygtbstg` is naughty because it has a pair (`tg`) but no
|
|
repeat with a single letter between them.
|
|
- `ieodomkazucvgmuy` is naughty because it has a repeating letter with
|
|
one between (`odo`), but no pair that appears twice.
|
|
|
|
How many strings are nice under these new rules?
|
|
|
|
Your puzzle answer was `51`.
|
|
|
|
Both parts of this puzzle are complete! They provide two gold stars:
|
|
\*\*
|
|
|
|
At this point, you should [return to your Advent calendar](/2015) and
|
|
try another puzzle.
|
|
|
|
If you still want to see it, you can [get your puzzle
|
|
input](5/input).
|
|
|