aboutsummaryrefslogtreecommitdiffstats
path: root/AoC2022/06/solver.el
diff options
context:
space:
mode:
authorOscar Najera <hi@oscarnajera.com>2022-12-06 16:47:44 +0100
committerOscar Najera <hi@oscarnajera.com>2022-12-06 16:47:44 +0100
commitf34c85b78a1cbefa475a252184c13b68c9727332 (patch)
tree11b7b49735ca72adca4701f5f0a7619d6ed9bd6c /AoC2022/06/solver.el
parent48fd41b4a011d04634830c9132cf137d33ad555a (diff)
downloadscratch-f34c85b78a1cbefa475a252184c13b68c9727332.tar.gz
scratch-f34c85b78a1cbefa475a252184c13b68c9727332.tar.bz2
scratch-f34c85b78a1cbefa475a252184c13b68c9727332.zip
[AoC2022] Lisp 06
Diffstat (limited to 'AoC2022/06/solver.el')
-rw-r--r--AoC2022/06/solver.el33
1 files changed, 33 insertions, 0 deletions
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 <hi@oscarnajera.com>
+;; Maintainer: Óscar Nájera <hi@oscarnajera.com>
+;; 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))))