diff --git a/.gitignore b/.gitignore index eb34ca7..ebe4360 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,5 @@ +input/ + # ---> Lua # Compiled Lua sources luac.out diff --git a/1.lua b/1.lua new file mode 100755 index 0000000..90747c6 --- /dev/null +++ b/1.lua @@ -0,0 +1,32 @@ +#!/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 + local diff = math.abs(left[i] - right[i]) + sumDiff = sumDiff + diff +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) +