#lang curly-fn racket (require "scripts/aoc.rkt") ;; solution for day 1 (define (part1 input) (for/sum ([line (in-list input)]) (define nums (regexp-match* #px"[0-9]" line)) (string->number (string-append (first nums) (last nums))))) (define (part2 input) (define (line->result line) (define match1 (first (regexp-match #px"([0-9]|one|two|three|four|five|six|seven|eight|nine)" line))) (define match2 (string-reverse (first (regexp-match #px"([0-9]|eno|owt|eerht|ruof|evif|xis|neves|thgie|enin)" (string-reverse line))))) (match-define (list num1 num2) (for/list ([z (in-list (list match1 match2))]) (match z ["one" "1"] ["two" "2"] ["three" "3"] ["four" "4"] ["five" "5"] ["six" "6"] ["seven" "7"] ["eight" "8"] ["nine" "9"] [v v]))) (string->number (string-append num1 num2))) (apply + (map line->result input))) (module+ main (define input (file->lines "inputs/1")) (answer 1 1 (time (part1 input))) (answer 1 2 (time (part2 input))) (displayln "meow"))