aboutsummaryrefslogtreecommitdiff
path: root/advent-of-code/2023/01/part1.rkt
diff options
context:
space:
mode:
authorMistivia <i@mistivia.com>2024-02-14 14:55:21 +0800
committerMistivia <i@mistivia.com>2024-02-14 14:55:21 +0800
commitdc6b5fe160647afcaff88242792113b5802176fe (patch)
treefbaf92803820f820716ea584bd951267c9080a2e /advent-of-code/2023/01/part1.rkt
parent60b0586ddc42cd8060e796e61267fc63a4397712 (diff)
refactor advent of code 2023 day 01 from c to racket
Diffstat (limited to 'advent-of-code/2023/01/part1.rkt')
-rw-r--r--advent-of-code/2023/01/part1.rkt22
1 files changed, 22 insertions, 0 deletions
diff --git a/advent-of-code/2023/01/part1.rkt b/advent-of-code/2023/01/part1.rkt
new file mode 100644
index 0000000..0c69be5
--- /dev/null
+++ b/advent-of-code/2023/01/part1.rkt
@@ -0,0 +1,22 @@
+#lang racket
+
+(define fp (open-input-file "input"))
+(define sum 0)
+
+(define (get-lines fp)
+ (let loop ((lines '()))
+ (define l (read-line fp))
+ (if (eof-object? l)
+ (reverse lines)
+ (loop (cons l lines)))))
+
+(define lines (get-lines fp))
+
+(define (extract-number line)
+ (define number-list (filter char-numeric? (string->list line)))
+ (set! number-list (map (lambda (c)
+ (string->number (list->string (list c))))
+ number-list))
+ (+ (last number-list) (* 10 (car number-list))))
+
+(apply + (map extract-number lines))