From cca98607c9a2117d98349c8f12eec654923df051 Mon Sep 17 00:00:00 2001 From: Tobias Eidelpes Date: Sat, 10 Dec 2022 17:43:30 +0100 Subject: [PATCH] Add solution for part 1 for day 10 --- day10/day10.lisp | 22 ++++++++ day10/input | 137 +++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 159 insertions(+) create mode 100644 day10/day10.lisp create mode 100644 day10/input diff --git a/day10/day10.lisp b/day10/day10.lisp new file mode 100644 index 0000000..f44bd64 --- /dev/null +++ b/day10/day10.lisp @@ -0,0 +1,22 @@ +(ql:quickload :cl-ppcre) +(ql:quickload :alexandria) + +(defun addx (amount) + (list 0 amount)) + +(defun noop () + '(0)) + +(defun exec (program) + (let ((instr (ppcre:split "\\n" program))) + (alexandria:flatten + (append (list 1) + (loop :for line :in instr + :collect (eval (read-from-string (concatenate 'string "(" line ")")))))))) + +(defun strength-at-cycle (program cycle) + (* cycle (reduce '+ (subseq program 0 cycle)))) + +(defun part-one (input) + (reduce '+ (loop :for x :in (list 20 60 100 140 180 220) + :collect (strength-at-cycle (exec (uiop:read-file-string input)) x)))) diff --git a/day10/input b/day10/input new file mode 100644 index 0000000..42295c4 --- /dev/null +++ b/day10/input @@ -0,0 +1,137 @@ +noop +noop +noop +addx 4 +addx 1 +addx 5 +addx 1 +addx 5 +noop +addx -1 +addx -6 +addx 11 +noop +noop +noop +noop +addx 6 +addx 5 +noop +noop +noop +addx -30 +addx 34 +addx 2 +addx -39 +noop +addx 5 +addx 2 +addx 19 +addx -18 +addx 2 +addx 5 +addx 2 +addx 3 +noop +addx 2 +addx 3 +noop +addx 2 +addx 3 +noop +addx 2 +addx 3 +noop +addx 2 +addx -15 +addx -22 +noop +noop +addx 5 +addx 2 +noop +noop +addx 14 +addx -11 +addx 5 +addx 2 +addx 3 +noop +addx 2 +addx -16 +addx 17 +addx 2 +addx 5 +addx 2 +addx -6 +addx -25 +addx 35 +addx 1 +addx -36 +addx 1 +addx 22 +addx -19 +addx 5 +addx 2 +noop +noop +addx 5 +noop +noop +noop +addx 1 +addx 4 +noop +noop +noop +addx 5 +noop +addx 1 +addx 2 +addx 3 +addx 4 +addx -34 +addx 21 +addx -24 +addx 2 +addx 5 +addx 7 +addx -6 +addx 2 +addx 30 +addx -23 +addx 10 +addx -9 +addx 2 +addx 2 +addx 5 +addx -12 +addx 13 +addx 2 +addx 5 +addx 2 +addx -12 +addx -24 +addx -1 +noop +addx 3 +addx 3 +addx 1 +addx 5 +addx 21 +addx -16 +noop +addx 19 +addx -18 +addx 2 +addx 5 +addx 2 +addx 3 +noop +addx 3 +addx -1 +addx 1 +addx 2 +addx -18 +addx 1 +noop