src/2018/days/day-05.lisp @ 32db20d16280
Two more days
author |
Steve Losh <steve@stevelosh.com> |
date |
Thu, 12 Dec 2019 19:31:55 -0500 |
parents |
cd781337a694 |
children |
182bdd87fd9e |
(defpackage :advent/2018/05 #.cl-user::*advent-use*)
(in-package :advent/2018/05)
(named-readtables:in-readtable :interpol-syntax)
(defun reactivep (x y)
(char= x (char-invertcase y)))
(defun react (string &aux result)
(doseq (char string)
(if (and result (reactivep char (car result)))
(pop result)
(push char result)))
(coerce (nreverse result) 'string))
(define-problem (2018 5) (data alexandria:read-stream-content-into-string)
(10708 5330)
(deletef data #\newline)
(values
(length (react data))
(iterate
(for unit :in-vector (remove-duplicates data :test #'char-equal))
(for candidate = (react (remove unit data :test #'char-equal)))
(minimizing (length candidate)))))