adventofcode2022

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

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)