Day 1: Historian Hysteria

Reference

library(tidyverse)

input <- read_table(file = "inputs/2024/01.txt",
                    col_names = c("side_1", "side_2"),
                    show_col_types = FALSE)

Part One

tibble(side_1 = input |> pull(side_1) |> vctrs::vec_sort(),
       side_2 = input |> pull(side_2) |> vctrs::vec_sort()) |> 
    mutate(distance = abs(side_1 - side_2)) |> 
    filter(distance > 0) |> 
    summarise(total = sum(distance)) |> 
    pull(total) |> 
    cat()
## 1970720

Part Two

input |> 
    mutate(multiplier = map_int(side_1, \(x) sum(side_2 == x)),
           similarity_score = multiplier * side_1) |> 
    summarise(total = sum(similarity_score)) |> 
    pull(total) |> 
    cat()
## 17191599