From 502d51d218b0944d2e181b5b8ed6d820074be936b1b155efc536bd7ccd31f0d5 Mon Sep 17 00:00:00 2001 From: nazrin Date: Sun, 1 Dec 2024 13:46:29 +0000 Subject: [PATCH] Day 1 --- .gitignore | 2 ++ 1.lua | 32 ++++++++++++++++++++++++++++++++ 2 files changed, 34 insertions(+) create mode 100755 1.lua 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) +