From f34c85b78a1cbefa475a252184c13b68c9727332 Mon Sep 17 00:00:00 2001 From: Oscar Najera Date: Tue, 6 Dec 2022 16:47:44 +0100 Subject: [AoC2022] Lisp 06 --- AoC2022/06/solver.el | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 AoC2022/06/solver.el (limited to 'AoC2022/06/solver.el') diff --git a/AoC2022/06/solver.el b/AoC2022/06/solver.el new file mode 100644 index 0000000..60d1654 --- /dev/null +++ b/AoC2022/06/solver.el @@ -0,0 +1,33 @@ +;;; 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)))) -- cgit v1.2.3