diff options
| author | Mistivia <i@mistivia.com> | 2024-02-25 20:11:54 +0800 |
|---|---|---|
| committer | Mistivia <i@mistivia.com> | 2024-02-25 20:11:54 +0800 |
| commit | 515ecbf5a20a8e432a998b0a543bedcb1bd64cf4 (patch) | |
| tree | 6353c603a8cf0276553f420205f8d1c730a318ce /advent-of-code/2023/04/1.rkt | |
| parent | e191b610c11326b587cf0b01fd6fc37b8d07bb19 (diff) | |
reorg code
Diffstat (limited to 'advent-of-code/2023/04/1.rkt')
| -rw-r--r-- | advent-of-code/2023/04/1.rkt | 29 |
1 files changed, 0 insertions, 29 deletions
diff --git a/advent-of-code/2023/04/1.rkt b/advent-of-code/2023/04/1.rkt deleted file mode 100644 index e8dd242..0000000 --- a/advent-of-code/2023/04/1.rkt +++ /dev/null @@ -1,29 +0,0 @@ -#lang racket - -(require "../../lib/utils.rkt") -(require "../../lib/obj.rkt") - -(define fp (open-input-file "input")) - -(define lines (get-lines fp)) - -(define (strip-head s) - (string-trim (cadr (string-split s ":")))) - -(set! lines (map strip-head lines)) - -(define make-card (obj-maker 'win-nums 'nums)) - -(define (parse-card s) - (define lst (string-split s "|")) - (define win-nums (map string->number (string-split (car lst)))) - (define nums (map string->number (string-split (cadr lst)))) - (make-card win-nums nums)) - -(define (point card) - (define wins (length (filter (λ (x) (member x (card 'win-nums))) (card 'nums)))) - (if (= wins 0) - 0 - (expt 2 (- wins 1)))) - -(apply + (map point (map parse-card lines))) |
