From 8193fd33c3e84a02adb465a029ba271902deb43b Mon Sep 17 00:00:00 2001 From: Oscar Najera Date: Sat, 16 Dec 2023 17:34:59 +0100 Subject: day15 part 1 --- AoC2023/day15/solver.lisp | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 AoC2023/day15/solver.lisp (limited to 'AoC2023/day15/solver.lisp') diff --git a/AoC2023/day15/solver.lisp b/AoC2023/day15/solver.lisp new file mode 100644 index 0000000..fbcbf77 --- /dev/null +++ b/AoC2023/day15/solver.lisp @@ -0,0 +1,23 @@ +;; 17:04 +;; 17:34 part1 +(ql:quickload '(fiveam str)) + +(defparameter eg-in "rn=1,cm-,qp=3,cm=2,qp-,pc=4,ot=9,ab=5,pc-,pc=6,ot=7") + +(defun hash (str) + (reduce + (lambda (acc c) + (mod (* 17 (+ acc (char-code c))) 256)) + str :initial-value 0)) + +(defun solve1 (in) + (reduce #'+ + (str:split "," (str:trim in)) + :key #'hash)) + +(fiveam:test solutions + (fiveam:is (= 52 (hash "HASH"))) + (fiveam:is (= 1320 (solve1 eg-in))) + (fiveam:is (= 506437 (solve1 (uiop:read-file-string "input"))))) + +(fiveam:run!) -- cgit v1.2.3