aboutsummaryrefslogtreecommitdiff
path: root/2021/day1/01b.rkt
diff options
context:
space:
mode:
Diffstat (limited to '2021/day1/01b.rkt')
-rw-r--r--2021/day1/01b.rkt23
1 files changed, 23 insertions, 0 deletions
diff --git a/2021/day1/01b.rkt b/2021/day1/01b.rkt
new file mode 100644
index 0000000..40337a4
--- /dev/null
+++ b/2021/day1/01b.rkt
@@ -0,0 +1,23 @@
+#lang racket
+(require threading)
+
+(define input (file->lines "input"))
+
+(define (map-differing-lengths f . arrs)
+ (define minLength (apply min (map length arrs)))
+ (define newLists (map (lambda (x) (take x minLength)) arrs))
+ (apply map (cons f newLists)))
+
+(define (build-windows xs)
+ (map-differing-lengths list xs (cdr xs) (drop xs 2)))
+
+(define (diff-pairs xs)
+ (map-differing-lengths - (cdr xs) xs))
+
+(~>> input
+ (map string->number)
+ (build-windows)
+ (map (lambda (x) (apply + x)))
+ (diff-pairs)
+ (filter positive?)
+ (length _))