day 3 part 1
This commit is contained in:
parent
933f2367d5
commit
3aff1cd302
2 changed files with 27 additions and 0 deletions
23
03a.lisp
Normal file
23
03a.lisp
Normal file
|
|
@ -0,0 +1,23 @@
|
||||||
|
(require :uiop)
|
||||||
|
(load (sb-ext:posix-getenv "ASDF"))
|
||||||
|
(asdf:load-system 'str)
|
||||||
|
|
||||||
|
(defun bank-max-joltage (bank)
|
||||||
|
(let ((batt-len (- (length bank) 1)))
|
||||||
|
(apply #'max
|
||||||
|
(loop for batt-first from 0 to (- batt-len 1)
|
||||||
|
collect (apply #'max
|
||||||
|
(loop for batt-last from (+ batt-first 1) to batt-len
|
||||||
|
collect (let (
|
||||||
|
(first-char (subseq bank batt-first (+ batt-first 1)))
|
||||||
|
(last-char (subseq bank batt-last (+ batt-last 1))))
|
||||||
|
(parse-integer (format nil "~A~A" first-char last-char)))))))))
|
||||||
|
(bank-max-joltage "987654321111111")
|
||||||
|
|
||||||
|
|
||||||
|
(defun array-total-joltage (bank-list)
|
||||||
|
(reduce #'+
|
||||||
|
(mapcar #'bank-max-joltage bank-list)))
|
||||||
|
|
||||||
|
(array-total-joltage (uiop:read-file-lines "03example.txt"))
|
||||||
|
(array-total-joltage (uiop:read-file-lines "03data.txt"))
|
||||||
4
03example.txt
Normal file
4
03example.txt
Normal file
|
|
@ -0,0 +1,4 @@
|
||||||
|
987654321111111
|
||||||
|
811111111111119
|
||||||
|
234234234234278
|
||||||
|
818181911112111
|
||||||
Loading…
Add table
Add a link
Reference in a new issue