library(tidyverse)
dat <- read.table("aoc01.txt")
Part 1
sortdat <- data.frame(V1 = sort(dat$V1), V2 = sort(dat$V2)) |>
mutate(dist = abs(V1 - V2))
sum(sortdat$dist)
[1] 1590491
Part 2
tally_right <- dat |>
group_by(V2) |>
tally() |>
rename(V1 = V2)
left <- dat |>
select(V1) |>
left_join(tally_right) |>
replace_na(list(n = 0)) |>
mutate(sim = V1 * n)
Joining with `by = join_by(V1)`
sum(left$sim)
[1] 22588371
LS0tDQp0aXRsZTogIkRheSAxOiBIaXN0b3JpYW4gSHlzdGVyaWEiDQphdXRob3I6IEFuZGlGDQpkYXRlOiAxIERlYyAyMDI0DQpvdXRwdXQ6IA0KICBodG1sX25vdGVib29rOiANCiAgICBjb2RlX2ZvbGRpbmc6IG5vbmUNCi0tLQ0KDQpgYGB7ciBtZXNzYWdlPUZBTFNFLCB3YXJuaW5nPUZBTFNFfQ0KbGlicmFyeSh0aWR5dmVyc2UpDQpgYGANCg0KDQpgYGB7cn0NCmRhdCA8LSByZWFkLnRhYmxlKCJhb2MwMS50eHQiKQ0KYGBgDQoNCg0KIyMjIFBhcnQgMQ0KDQpgYGB7cn0NCnNvcnRkYXQgPC0gZGF0YS5mcmFtZShWMSA9IHNvcnQoZGF0JFYxKSwgVjIgPSBzb3J0KGRhdCRWMikpIHw+DQogIG11dGF0ZShkaXN0ID0gYWJzKFYxIC0gVjIpKQ0Kc3VtKHNvcnRkYXQkZGlzdCkNCmBgYA0KDQoNCiMjIyBQYXJ0IDINCg0KYGBge3J9DQp0YWxseV9yaWdodCA8LSBkYXQgfD4NCiAgZ3JvdXBfYnkoVjIpIHw+DQogIHRhbGx5KCkgfD4NCiAgcmVuYW1lKFYxID0gVjIpDQpgYGANCg0KYGBge3J9DQpsZWZ0IDwtIGRhdCB8Pg0KICBzZWxlY3QoVjEpIHw+DQogIGxlZnRfam9pbih0YWxseV9yaWdodCkgfD4NCiAgcmVwbGFjZV9uYShsaXN0KG4gPSAwKSkgfD4NCiAgbXV0YXRlKHNpbSA9IFYxICogbikNCmBgYA0KDQpgYGB7cn0NCnN1bShsZWZ0JHNpbSkNCmBgYA0KDQo=