diff options
author | Hunky Jimpjorps <thechairman@thechairman.info> | 2022-11-26 01:43:33 -0500 |
---|---|---|
committer | Hunky Jimpjorps <thechairman@thechairman.info> | 2022-11-26 01:43:33 -0500 |
commit | feccf3f6f0a806b3317d1f399e3e8b42945c4f09 (patch) | |
tree | bf15ce045d1106c1b7f7de30c27540f40d0bf947 /2021/day-17 | |
parent | 8b624fe7d2751337b1f16830cc9c041df73e99e7 (diff) | |
download | gleam_aoc-feccf3f6f0a806b3317d1f399e3e8b42945c4f09.tar.gz gleam_aoc-feccf3f6f0a806b3317d1f399e3e8b42945c4f09.zip |
using raco fmt, replacing missing dependency
Diffstat (limited to '2021/day-17')
-rw-r--r-- | 2021/day-17/day-17.rkt | 42 |
1 files changed, 16 insertions, 26 deletions
diff --git a/2021/day-17/day-17.rkt b/2021/day-17/day-17.rkt index b8563a5..7de44a0 100644 --- a/2021/day-17/day-17.rkt +++ b/2021/day-17/day-17.rkt @@ -4,38 +4,30 @@ (define-values (x-min x-max y-min y-max) (~> (open-day 17 2021) - port->string - (regexp-match #px"target area: x=(.*)\\.\\.(.*), y=(.*)\\.\\.(.*)\n" _) - rest - (map string->number _) - (apply values _))) + port->string + (regexp-match #px"target area: x=(.*)\\.\\.(.*), y=(.*)\\.\\.(.*)\n" _) + rest + (map string->number _) + (apply values _))) (define (hit? x y) - (and (x . >= . x-min) - (x . <= . x-max) - (y . >= . y-min) - (y . <= . y-max))) + (and (x . >= . x-min) (x . <= . x-max) (y . >= . y-min) (y . <= . y-max))) (define (miss? x y) - (or (y . < . y-min) - (x . > . x-max))) + (or (y . < . y-min) (x . > . x-max))) -(define (drag dx i) (max (- dx i) 0)) -(define (gravity dy i) (- dy i)) +(define (drag dx i) + (max (- dx i) 0)) +(define (gravity dy i) + (- dy i)) (define (find-trajectory-apex dx dy) - (for/fold ([x 0] [y 0] [y-apex 0] [result #f] - #:result (list y-apex result)) - ([i (in-naturals)] - #:break result) + (for/fold ([x 0] [y 0] [y-apex 0] [result #f] #:result (list y-apex result)) + ([i (in-naturals)] #:break result) (cond [(hit? x y) (values dx dy y-apex 'hit)] [(miss? x y) (values x y 'miss 'miss)] - [else - (values (+ x (drag dx i)) - (+ y (gravity dy i)) - (if (y . > . y-apex) y y-apex) - #f)]))) + [else (values (+ x (drag dx i)) (+ y (gravity dy i)) (if (y . > . y-apex) y y-apex) #f)]))) (define on-target (for*/list ([dx (in-inclusive-range 1 x-max)] @@ -45,9 +37,7 @@ (list dx dy (first velocity)))) ;; part 1 -(~>> on-target - (argmax third) - third) +(~>> on-target (argmax third) third) ;; part 2 -(length on-target)
\ No newline at end of file +(length on-target) |