diff options
Diffstat (limited to 'src/02.lisp')
-rw-r--r-- | src/02.lisp | 20 |
1 files changed, 10 insertions, 10 deletions
diff --git a/src/02.lisp b/src/02.lisp index 970e363..2eeb799 100644 --- a/src/02.lisp +++ b/src/02.lisp @@ -1,17 +1,17 @@ -(load "~/quicklisp/setup.lisp") +(load "../src/common.lisp") (ql:quickload 'uiop :silent t) (ql:quickload 'cl-ppcre :silent t) -(defun get-file-lines (name) - (uiop:read-file-lines name)) - ;; Turn the input file into whatever form you will use for both parts ;; (get-file-lines) and (get-file-string) will be useful -(defun parse-input (input-file) - (let ((input (mapcar (lambda (s) (cl-ppcre:split " " s)) (get-file-lines input-file)))) +(defun 02/parse-input-direct (input) + (let ((input (mapcar (lambda (s) (cl-ppcre:split " " s)) input))) (mapcar (lambda (x) (cons (intern (string-upcase (CAR x))) (parse-integer (CADR x)))) input))) -(defun part-a (parsed-input) +(defun 02/parse-input (input-file) + (02/parse-input-direct (get-file-lines input-file))) + +(defun 02/part-a (parsed-input) (let ((h 0) (v 0)) (dolist (i parsed-input) (case (car i) @@ -20,7 +20,7 @@ (down (incf v (cdr i))))) (* h v))) -(defun part-b (parsed-input) +(defun 02/part-b (parsed-input) (let ((h 0) (v 0) (a 0)) (dolist (i parsed-input) (case (car i) @@ -29,5 +29,5 @@ (down (incf a (cdr i))))) (* h v))) -(time (format t "part 2: ~a~%" (part-a (parse-input "../inputs/02.txt")))) -(time (format t "part 2: ~a~%" (part-b (parse-input "../inputs/02.txt")))) +;;(time (format t "part 2: ~a~%" (part-a (parse-input "../inputs/02.txt")))) +;;(time (format t "part 2: ~a~%" (part-b (parse-input "../inputs/02.txt")))) |