mirror of
https://github.com/bertptrs/adventofcode.git
synced 2025-12-25 21:00:31 +01:00
29 lines
785 B
HCL
29 lines
785 B
HCL
variable "input" {
|
|
type = string
|
|
}
|
|
|
|
locals {
|
|
cleaned_input = replace(var.input, "/ +/", " ")
|
|
lines = split("\n", trim(local.cleaned_input, "\n"))
|
|
lines_split = [for line in local.lines : split(" ", line)]
|
|
left = [for line in local.lines_split : parseint(line[0], 10)]
|
|
right = [for line in local.lines_split : parseint(line[1], 10)]
|
|
|
|
left_sorted = sort(local.left)
|
|
right_sorted = sort(local.right)
|
|
|
|
diffs = [for i in range(length(local.left_sorted)) : abs(local.left_sorted[i] - local.right_sorted[i])]
|
|
|
|
counts = { for num in local.right : num => num... }
|
|
|
|
matching = [for left in local.left : left * try(length(local.counts[left]), 0)]
|
|
}
|
|
|
|
output "part1" {
|
|
value = sum(local.diffs)
|
|
}
|
|
|
|
output "part2" {
|
|
value = sum(local.matching)
|
|
}
|