src/2018/days/day-05.lisp @ 2848a4548adf
2023/01 and 2022/01
Also start porting my test data to the new account, since Twitter imploded and
apparently it's impossible for a website to store a goddamn username and
password in The Year of Our Lord 2023 so everyone just outsources auth all
the time, ugh.
author |
Steve Losh <steve@stevelosh.com> |
date |
Fri, 01 Dec 2023 11:05:43 -0500 |
parents |
182bdd87fd9e |
children |
(none) |
(advent:defpackage* :advent/2018/05)
(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)
(setf data (delete #\newline data))
(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)))))