aboutsummaryrefslogtreecommitdiff
path: root/2019/05/puzzles.lisp
blob: c358e5a328a7f0a66d903e7c41bde5409e1ee7aa (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#!/usr/bin/sbcl --script

(load "../interpreter.lisp")

(defun main (filename)
  (let ((stdin (make-string-input-stream
                ;; START PART 1
                "1"
                ;; END PART 1 START PART 2
                "5"
                ;; END PART 2
                ))
        (stdout (make-string-output-stream)))
    (intcode:run (intcode:parse "input") stdin stdout)
    (parse-integer (last-line (get-output-stream-string stdout)))))

(defun last-line (string)
  (let* ((nl-e (position #\Newline string :from-end t))
         (nl-b (position #\Newline string :from-end t :end nl-e)))
    (subseq string (1+ (or nl-b -1)) nl-e)))

(format t "~d~%" (main "input"))