Add solution for part 1 for day 10

This commit is contained in:
Tobias Eidelpes 2022-12-10 17:43:30 +01:00
parent 13411e9f31
commit cca98607c9
2 changed files with 159 additions and 0 deletions

22
day10/day10.lisp Normal file
View File

@ -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))))

137
day10/input Normal file
View File

@ -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