aboutsummaryrefslogtreecommitdiff
path: root/2022/Day11/part-one.cl
diff options
context:
space:
mode:
authorSyndamia <kamen@syndamia.com>2022-12-11 20:28:35 +0200
committerSyndamia <kamen@syndamia.com>2022-12-11 20:28:35 +0200
commit8eb6f9a713c7b7175eedf8d833493036a4c7d333 (patch)
tree12cb8a0908d14ecc6e1a1eded2c7c791e107d960 /2022/Day11/part-one.cl
parent7fdd719af085daa6a35f004c0b8013b38ebf9178 (diff)
downloadadvent-of-code-8eb6f9a713c7b7175eedf8d833493036a4c7d333.tar
advent-of-code-8eb6f9a713c7b7175eedf8d833493036a4c7d333.tar.gz
advent-of-code-8eb6f9a713c7b7175eedf8d833493036a4c7d333.zip
[2022/D11] Solved second part and reworked a bit first part of today's task
Diffstat (limited to '2022/Day11/part-one.cl')
-rw-r--r--2022/Day11/part-one.cl23
1 files changed, 10 insertions, 13 deletions
diff --git a/2022/Day11/part-one.cl b/2022/Day11/part-one.cl
index 29f5b93..afab3ed 100644
--- a/2022/Day11/part-one.cl
+++ b/2022/Day11/part-one.cl
@@ -35,22 +35,19 @@
(push-back (pop (monkey-items m)) (monkey-items monkey-true))
(push-back (pop (monkey-items m)) (monkey-items monkey-false))))
-(defun create-operation-function (inpt)
- (eval `(lambda (old) (funcall ,(if (char= (char inpt 23) #\*) ; In the input, there is only * and +
- #'*
- #'+)
- old
- ,(if (char= (char inpt 25) #\o)
- 'old
- (parse-integer inpt :start 25))))))
-(defun create-test-function (inpt)
- (eval `(lambda (worry-level)
- (zerop (% worry-level ,(parse-integer inpt :start 21)))))) ; In the input we only test for divisibility
(ask-for-stream (prog-input)
(let ((monkeys '()) (buffer-items '()) (buffer-operation NIL) (buffer-test NIL) (buffer-throw-t -1) (buffer-throw-f -1))
-
+ (flet ((create-operation-function (inpt)
+ (eval `(lambda (old) (funcall ,(if (char= (char inpt 23) #\*) #'* #'+) ; In the input, there is only * and +
+ old
+ ,(if (char= (char inpt 25) #\o)
+ 'old
+ (parse-integer inpt :start 25))))))
+ (create-test-function (inpt)
+ (eval `(lambda (worry-level)
+ (zerop (% worry-level ,(parse-integer inpt :start 21))))))) ; In the input we only test for divisibility
(doread-lines (inpt :read-line-options (prog-input NIL))
(cond ((zerop (length inpt))) ; Do nothing on empty lines
@@ -98,4 +95,4 @@
if (< (monkey-inspections m) biggest)
maximize (monkey-inspections m) into second-biggest
finally
- (print (* biggest second-biggest))))))
+ (print (* biggest second-biggest)))))))