day06.lisp (549B)
1 (defpackage #:adventofcode2022/day06 2 (:use #:cl #:adventofcode2022)) 3 (in-package #:adventofcode2022/day06) 4 5 (defun first-unique-n-characters-after (sequence n) 6 (loop with data = sequence 7 for i from n to (length data) 8 for marker = (subseq data (- i n) i) 9 when (= n (length (remove-duplicates marker))) 10 do (return i))) 11 12 (defun task1 (inputs) 13 (first-unique-n-characters-after (car inputs) 4)) 14 15 (defun task2 (inputs) 16 (first-unique-n-characters-after (car inputs) 14)) 17 18 (define-day 6 19 () 20 #'task1 21 #'task2)