blob: f39d87ce3ddb6c4fac812f4c1f7b7e65e0a7f2af (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
|
#lang racket
(require "../../lib/utils.rkt")
(define fp (open-input-file "input"))
(define lines (get-lines fp))
(define (replace-digit str)
(set! str (string-replace str "one" "o1ne"))
(set! str (string-replace str "two" "t2wo"))
(set! str (string-replace str "three" "t3hree"))
(set! str (string-replace str "four" "f4our"))
(set! str (string-replace str "five" "f5ive"))
(set! str (string-replace str "six" "s6ix"))
(set! str (string-replace str "seven" "s7even"))
(set! str (string-replace str "eight" "e8ight"))
(set! str (string-replace str "nine" "n9ine"))
str)
(define (extract-number rawline)
(define line (replace-digit rawline))
(define number-list (filter char-numeric? (string->list line)))
(set! number-list (map (λ (c)
(string->number (list->string (list c))))
number-list))
(+ (last number-list) (* 10 (car number-list))))
(display (apply + (map extract-number lines)))
(newline)
|