Add solution for part 1 for day 10
This commit is contained in:
parent
13411e9f31
commit
cca98607c9
22
day10/day10.lisp
Normal file
22
day10/day10.lisp
Normal 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
137
day10/input
Normal 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
|
||||||
Loading…
x
Reference in New Issue
Block a user