aoc24/1.lua
2024-12-01 14:00:34 +00:00

31 lines
584 B
Lua
Executable file

#!/bin/env lua
local left, right = {}, {}
local rightCount = {}
for line in assert(io.open("input/1")):lines() do
local l, r = line:match("(%d+)%s+(%d+)")
l, r = assert(tonumber(l)), assert(tonumber(r))
table.insert(left, l)
table.insert(right, r)
rightCount[r] = (rightCount[r] or 0) + 1
end
table.sort(left)
table.sort(right)
local sumDiff = 0
for i=1,#left do
sumDiff = sumDiff + math.abs(left[i] - right[i])
end
print("Part one", sumDiff)
local simScore = 0
for _,l in ipairs(left) do
simScore = simScore + l * (rightCount[l] or 0)
end
print("Part two", simScore)