Compare commits

...

2 Commits

Author SHA1 Message Date
Folkert Kevelam
b6af9c467e Add solution to day 1 part 1 2025-02-17 21:41:25 +01:00
Folkert Kevelam
3dbb5dcd10 Move to another folder 2025-02-17 21:41:11 +01:00
2 changed files with 54 additions and 0 deletions

View File

@ -0,0 +1,54 @@
(defn compute_distance [left right]
(if
(not (=
(length left)
(length right)))
(return @[]))
(var output 0)
(def sorted_left (sort left))
(def sorted_right (sort right))
(var i (- (length sorted_left) 1))
(while (>= i 0)
(set output (+ output
(math/abs (- (get sorted_left i) (get sorted_right i)))))
(-- i))
output)
(defn getnums [input]
(def output (array/new 2))
(def str (string/split " " (string/trim input)))
(var i 0)
(each item str
(if (not (= item ""))
(do
(set (output i) (scan-number item))
(++ i))))
output)
(defn read_data [filename]
(def left @[])
(def right @[])
(var index 0)
(with [f (file/open filename)]
(while true
(var l (file/read f :line))
(if l
(do
(def line_data (getnums l))
(set (left index) (get line_data 0))
(set (right index) (get line_data 1))
(++ index))
(break))))
@[left right])
(defn main [script filename]
(def input_arrays (read_data filename))
(def left (get input_arrays 0))
(def right (get input_arrays 1))
(def distance (compute_distance left right))
(pp distance))