library(tidyverse)
input <- read_csv(file = "inputs/2015/05.txt", col_names = "original")Day 5: Doesn’t He Have Intern-Elves For This?
Part One
nice <- input |>
mutate(
three_more_vowels = str_count(original, "[aeiou]") >= 3,
one_more_double = str_detect(original, "([a-z])\\1"),
not_ab_cd_pq_xy = !str_detect(original, "ab|cd|pq|xy"),
nice = three_more_vowels & one_more_double & not_ab_cd_pq_xy
)
total_nice_strings <- sum(nice$nice)
cat("Total nice strings (old rules):", total_nice_strings, "\n")
## Total nice strings (old rules): 258Part Two
nice_new <- input |>
mutate(
repeating_pair = str_detect(original, "([a-z]{2}).*\\1"),
repeat_with_gap = str_detect(original, "([a-z]).\\1"),
nice_new = repeating_pair & repeat_with_gap
)
total_nice_strings_new <- sum(nice_new$nice_new)
cat("Total nice strings (new rules):", total_nice_strings_new, "\n")
## Total nice strings (new rules): 53