adventofcode2022

My solutions for Advent of Code 2022
Log | Files | Refs

commit 635f4be6dcc2a8cc558e852cccbaf5657fe96928
parent 59e65ecfd1a0b16816d61928678974b82859e6bf
Author: Lukas Henkel <lh@entf.net>
Date:   Sun,  4 Dec 2022 10:32:53 +0100

Day 4 task 2

Diffstat:
Msrc/day04.lisp | 17+++++++++++++++--
Mt/day04.lisp | 6++++++
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+)))))