diff options
Diffstat (limited to 'day-03/sol.lisp')
-rw-r--r-- | day-03/sol.lisp | 33 |
1 files changed, 0 insertions, 33 deletions
diff --git a/day-03/sol.lisp b/day-03/sol.lisp deleted file mode 100644 index 7f9ba90..0000000 --- a/day-03/sol.lisp +++ /dev/null @@ -1,33 +0,0 @@ -(ql:quickload "cl-ppcre") - -(defun get-ranges (line) - (ppcre:register-groups-bind ((#'parse-integer first second third fourth)) - ("(\\d+)-(\\d+),(\\d+)-(\\d+)" line :sharedp t) - `((,first ,second) (,third ,fourth)))) - -(defun ranges-may-subset-of-one (a b) - (member-if - (lambda (r) - (and - (>= (caar r) (caadr r)) - (<= (cadar r) (cadadr r)))) - `((,a ,b) (,b ,a)))) - -(defun range-is-contained-at-all (a b) - (and - (<= (car a) (cadr b)) - (>= (cadr a) (car b)))) - -(defun main () - (let ((lines (uiop:read-file-lines "input"))) - (print - (mapcar (lambda (f) - (reduce (lambda (a x) - (if (apply f (get-ranges x)) - (1+ a) - a)) - lines - :initial-value 0)) - '(range-is-contained range-may-be-subset-of-one))))) - -(main) |