diff --git a/p3/p3.org b/p3/p3.org index 3c4e31d..0a06a72 100644 --- a/p3/p3.org +++ b/p3/p3.org @@ -29,3 +29,22 @@ This is for part 1: #+RESULTS: : 17405 + +Let us redo it with a recursive approach +#+begin_src emacs-lisp + (setq max-batteries 12) + + (defun joltage (bank no-batteries) + (if (< no-batteries 0) 0 + (let ((mult (expt 10 no-batteries)) + (max-available-joltage (-max (-drop-last no-batteries bank)))) + (+ (* mult max-available-joltage) + (joltage (-drop (1+ (-elem-index max-available-joltage bank)) bank) + (- no-batteries 1)))))) + + (-sum (--map (joltage it (- max-batteries 1)) data)) + +#+end_src + +#+RESULTS: +: 171990312704598