Compare commits
3 Commits
d6ee3239c8
...
dcc3c287bb
Author | SHA1 | Date |
---|---|---|
Samuel Ortion | dcc3c287bb | |
Samuel Ortion | 28948d6ed4 | |
Samuel Ortion | b2dc08f0f4 |
File diff suppressed because one or more lines are too long
|
@ -0,0 +1,22 @@
|
|||
;; Day 1: Not Quite Lisp
|
||||
;;
|
||||
;; Part 1: What is the floor Santa takes ?
|
||||
|
||||
|
||||
(defparameter balance 0)
|
||||
|
||||
(defun direction (char) (cond
|
||||
((char= char #\()
|
||||
+1)
|
||||
((char= char #\))
|
||||
-1)
|
||||
))
|
||||
|
||||
(with-open-file (in "./data/input")
|
||||
|
||||
(do ((char (read-char in nil)
|
||||
(read-char in nil)))
|
||||
((null char))
|
||||
(setf balance (+ balance (direction char)))))
|
||||
|
||||
(print balance)
|
|
@ -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