commit 635f4be6dcc2a8cc558e852cccbaf5657fe96928
parent 59e65ecfd1a0b16816d61928678974b82859e6bf
Author: Lukas Henkel <lh@entf.net>
Date: Sun, 4 Dec 2022 10:32:53 +0100
Day 4 task 2
Diffstat:
2 files changed, 21 insertions(+), 2 deletions(-)
diff --git a/src/day04.lisp b/src/day04.lisp
@@ -2,12 +2,25 @@
(:use #:cl #:adventofcode2022))
(in-package #:adventofcode2022/day04)
-(defun range-intersects-p (begin-1 end-1 begin-2 end-2)
+(defun range-contains-p (begin-1 end-1 begin-2 end-2)
(or (and (>= begin-1 begin-2) (<= end-1 end-2))
(and (>= begin-2 begin-1) (<= end-2 end-1))))
+(defun range-intersects-p (begin-1 end-1 begin-2 end-2)
+ (and (<= begin-1 end-2)
+ (<= begin-2 end-1)))
+
(defun task1 (inputs)
(loop for input in inputs
+ when (range-contains-p
+ (caar input)
+ (cdar input)
+ (cadr input)
+ (cddr input))
+ sum 1))
+
+(defun task2 (inputs)
+ (loop for input in inputs
when (range-intersects-p
(caar input)
(cdar input)
@@ -23,4 +36,4 @@
`((,(parse-integer (car range-1)) . ,(parse-integer (cadr range-1))) .
(,(parse-integer (car range-2)) . ,(parse-integer (cadr range-2)))))))
#'task1
- nil)
+ #'task2)
diff --git a/t/day04.lisp b/t/day04.lisp
@@ -12,3 +12,9 @@
(= 2
(run-task 4 1
(make-string-input-stream +testdata-day04+)))))
+
+(def-test day04-task1 ()
+ (is-true
+ (= 4
+ (run-task 4 2
+ (make-string-input-stream +testdata-day04+)))))