aboutsummaryrefslogtreecommitdiff
path: root/2021/day-17
diff options
context:
space:
mode:
authorHunky Jimpjorps <thechairman@thechairman.info>2022-11-26 01:43:33 -0500
committerHunky Jimpjorps <thechairman@thechairman.info>2022-11-26 01:43:33 -0500
commitfeccf3f6f0a806b3317d1f399e3e8b42945c4f09 (patch)
treebf15ce045d1106c1b7f7de30c27540f40d0bf947 /2021/day-17
parent8b624fe7d2751337b1f16830cc9c041df73e99e7 (diff)
downloadgleam_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.rkt42
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)