src/2018/days/day-02.lisp @ 77fa6a483e0e
2021/04
| author | Steve Losh <steve@stevelosh.com> |
|---|---|
| date | Sat, 04 Dec 2021 13:11:25 -0500 |
| parents | 182bdd87fd9e |
| children | (none) |
(advent:defpackage* :advent/2018/02) (in-package :advent/2018/02) (define-problem (2018 2) (data read-lines) (8296 "pazvmqbftrbeosiecxlghkwud") (values (let* ((freqs (mapcar #'frequencies data)) (counts (mapcar #'alexandria:hash-table-values freqs))) (* (count 2 counts :test #'member) (count 3 counts :test #'member))) ;; just brute force it (multiple-value-bind (a b) (iterate (for (a . remaining) :on data) (for b = (find 1 remaining :key (curry #'hamming-distance a))) (when b (return (values a b)))) (let ((i (mismatch a b))) (str:concat (subseq a 0 i) (subseq a (1+ i)))))))