diff options
Diffstat (limited to '2015/day-02/day-02.rkt')
-rw-r--r-- | 2015/day-02/day-02.rkt | 34 |
1 files changed, 6 insertions, 28 deletions
diff --git a/2015/day-02/day-02.rkt b/2015/day-02/day-02.rkt index 870e380..579fd00 100644 --- a/2015/day-02/day-02.rkt +++ b/2015/day-02/day-02.rkt @@ -7,42 +7,20 @@ (define presents (for/list ([size-string (in-lines (open-day 2 2015))]) - (~> size-string - (string-split "x") - (map string->number _) - (apply present _)))) + (~> size-string (string-split "x") (map string->number _) (apply present _)))) ;; part 1 (define (paper-area p) - (define main-area - (~> p - struct->list - (combinations 2) - (map (λ~> (apply * 2 _)) _) - (apply + _))) - (define slack-area - (~> p - struct->list - (sort <) - (take 2) - (apply * _))) + (define main-area (~> p struct->list (combinations 2) (map (λ~> (apply * 2 _)) _) (apply + _))) + (define slack-area (~> p struct->list (sort <) (take 2) (apply * _))) (+ main-area slack-area)) (for/sum ([p (in-list presents)]) (paper-area p)) ;; part 2 (define (ribbon-length p) - (define ribbon-around-box - (~> p - struct->list - (sort <) - (take 2) - (map (λ~> (* 2)) _) - (apply + _))) - (define ribbon-for-bow - (~> p - struct->list - (apply * _))) + (define ribbon-around-box (~> p struct->list (sort <) (take 2) (map (λ~> (* 2)) _) (apply + _))) + (define ribbon-for-bow (~> p struct->list (apply * _))) (+ ribbon-around-box ribbon-for-bow)) -(for/sum ([p (in-list presents)]) (ribbon-length p))
\ No newline at end of file +(for/sum ([p (in-list presents)]) (ribbon-length p)) |