day 1
This commit is contained in:
2000
day-1.input
Normal file
2000
day-1.input
Normal file
File diff suppressed because it is too large
Load Diff
34
day-1.scm
Normal file
34
day-1.scm
Normal file
@@ -0,0 +1,34 @@
|
||||
(define (count-increase text-port previous count)
|
||||
(let [(line (get-line text-port))]
|
||||
(if (eof-object? line)
|
||||
count
|
||||
(let [(number (string->number line))]
|
||||
(count-increase text-port number
|
||||
(+ count (if (> number previous) 1 0)))))))
|
||||
|
||||
(let [(file (open-input-file "day-1.input"))]
|
||||
(display "part 1: ")
|
||||
(display (count-increase file 100000 0))
|
||||
(newline)
|
||||
(close-port file))
|
||||
|
||||
(define (count-increase-sliding text-port triplet previous-sum count)
|
||||
(let [(line (get-line text-port))]
|
||||
(if (eof-object? line)
|
||||
count
|
||||
(let* [(number (string->number line))
|
||||
(triplet (list (cadr triplet) (caddr triplet) number))
|
||||
(sum (+ (car triplet) (cadr triplet) (caddr triplet)))]
|
||||
(count-increase-sliding text-port triplet sum
|
||||
(+ count (if (> sum previous-sum) 1 0)))))))
|
||||
|
||||
(define (read-number text-port)
|
||||
(string->number (get-line text-port)))
|
||||
|
||||
(let* [(file (open-input-file "day-1.input"))
|
||||
(triplet (list (read-number file) (read-number file) (read-number file)))
|
||||
(sum (+ (car triplet) (cadr triplet) (caddr triplet)))]
|
||||
(display "part 2: ")
|
||||
(display (count-increase-sliding file triplet sum 0))
|
||||
(newline)
|
||||
(close-port file))
|
||||
Reference in New Issue
Block a user