Solve part 2 of Not Quite Lisp
This commit is contained in:
parent
28948d6ed4
commit
dcc3c287bb
|
@ -1,4 +1,7 @@
|
||||||
;; Day 1: Not Quite Lisp
|
;; Day 1: Not Quite Lisp
|
||||||
|
;;
|
||||||
|
;; Part 1: What is the floor Santa takes ?
|
||||||
|
|
||||||
|
|
||||||
(defparameter balance 0)
|
(defparameter balance 0)
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,27 @@
|
||||||
|
;; Day 1: Not Quite Lisp
|
||||||
|
;;
|
||||||
|
;; Part 2: Position of the character with balance -1 (basement)
|
||||||
|
;;
|
||||||
|
;; ref.
|
||||||
|
;; - read: https://lispcookbook.github.io/cl-cookbook/files.html
|
||||||
|
|
||||||
|
(defparameter balance 0)
|
||||||
|
(defparameter position 0)
|
||||||
|
|
||||||
|
(defun direction (char) (cond
|
||||||
|
((char= char #\()
|
||||||
|
+1)
|
||||||
|
((char= char #\))
|
||||||
|
-1)
|
||||||
|
))
|
||||||
|
|
||||||
|
(with-open-file (in "./data/input")
|
||||||
|
(loop for char = (read-char in nil)
|
||||||
|
until (= balance -1)
|
||||||
|
do
|
||||||
|
(setf balance
|
||||||
|
(+ balance (direction char)))
|
||||||
|
(setf position
|
||||||
|
(+ position 1))))
|
||||||
|
|
||||||
|
(print position)
|
Loading…
Reference in New Issue