# Libraries
library(tidyverse)
# Read input from file
<- read_csv("../input/day04.txt", col_names = FALSE) input
Day 4
Advent of Code: Worked Solutions
Setup
Parts 1 & 2
|>
input separate(X1, into = c("start1", "end1"), sep = "-", convert = TRUE) |>
separate(X2, into = c("start2", "end2"), sep = "-", convert = TRUE) |>
mutate(
range1 = map2(start1, end1, ~ .x:.y),
range2 = map2(start2, end2, ~ .x:.y),
contained = map2_lgl(range1, range2, ~ all(.x %in% .y) | all(.y %in% .x)),
overlap = map2_lgl(range1, range2, ~ length(intersect(.x, .y)) > 0)
|>
) summarize(num_contained = sum(contained), num_overlap = sum(overlap))