;;; solver.el --- Day 06 -*- lexical-binding: t; -*- ;; ;; Copyright (C) 2022 Óscar Nájera ;; ;; Author: Óscar Nájera ;; Maintainer: Óscar Nájera ;; Created: December 06, 2022 ;; Modified: December 06, 2022 ;; ;; This file is not part of GNU Emacs. ;; ;;; Commentary: ;; ;; Day 06 ;; ;;; Code: ;;; (require 'ert) (defun solver (start-marker-len) (with-temp-buffer (insert-file-contents-literally "input") (goto-char (point-min)) (cl-loop with acc = (make-ring start-marker-len) for chr = (prog1 (char-after) (forward-char)) do (ring-insert acc chr) count chr while (< (length (seq-uniq (ring-elements acc) #'eq)) start-marker-len)))) (ert-deftest test-solver () (should (= 1655 (solver 4))) (should (= 2665 (solver 14))))