aboutsummaryrefslogtreecommitdiff
path: root/2022
diff options
context:
space:
mode:
authorHunky Jimpjorps <thechairman@thechairman.info>2022-12-13 01:19:05 -0500
committerHunky Jimpjorps <thechairman@thechairman.info>2022-12-13 01:19:05 -0500
commitfd3d1f61531f5c48125b822ab3bd2cdc65fc9254 (patch)
tree488275bf0b9ff8d73821bb2a7f3be7bf82e2bcaa /2022
parent80fbd3beb20303dc5be6272a6e6e14939d5d94d0 (diff)
parentb70835069c1bcc8a9ca316b1795de3bfd6d6f12e (diff)
downloadgleam_aoc-fd3d1f61531f5c48125b822ab3bd2cdc65fc9254.tar.gz
gleam_aoc-fd3d1f61531f5c48125b822ab3bd2cdc65fc9254.zip
Merge branch 'main' of https://github.com/hunkyjimpjorps/AdventOfCode into main
Diffstat (limited to '2022')
-rw-r--r--2022/day-07/day-07.rkt14
-rw-r--r--2022/day-12/day-12.rkt13
2 files changed, 14 insertions, 13 deletions
diff --git a/2022/day-07/day-07.rkt b/2022/day-07/day-07.rkt
index 4ebd3b4..3826cc4 100644
--- a/2022/day-07/day-07.rkt
+++ b/2022/day-07/day-07.rkt
@@ -15,13 +15,13 @@
(for/fold ([folders (hash)] [current-path '()] [previously-seen? #false] #:result folders)
([cmd (in-list cmds)])
- (match cmd
- ["$ ls" (values folders current-path (hash-has-key? folders current-path))]
- ["$ cd /" (values folders '("/") #false)]
- ["$ cd .." (values folders (rest current-path) #false)]
- [(regexp #px"\\$ cd (.+)" (list _ folder)) (values folders (cons folder current-path) #false)]
- [(regexp #px"dir (.+)") (values folders current-path previously-seen?)]
- [(regexp #px"(.+) (.+)" (list _ (app ->number size) _))
+ (match (string-split cmd)
+ [(list "$" "ls") (values folders current-path (hash-has-key? folders current-path))]
+ [(list "$" "cd" "/") (values folders '("/") #false)]
+ [(list "$" "cd" "..") (values folders (rest current-path) #false)]
+ [(list "$" "cd" folder) (values folders (cons folder current-path) #false)]
+ [(list "dir" _) (values folders current-path previously-seen?)]
+ [(list (app ->number size) _)
(cond
[previously-seen? (values folders current-path previously-seen?)]
[else (values (update-sizes folders current-path size) current-path previously-seen?)])])))
diff --git a/2022/day-12/day-12.rkt b/2022/day-12/day-12.rkt
index 9120468..5e0c365 100644
--- a/2022/day-12/day-12.rkt
+++ b/2022/day-12/day-12.rkt
@@ -35,11 +35,12 @@
(list p neighbor))))
;; part 1
-(match-define-values (distances _) (dijkstra paths (hash-ref special-points 'start)))
-(hash-ref distances (hash-ref special-points 'end))
+(time (match-define-values (distances _) (bfs paths (hash-ref special-points 'start)))
+ (hash-ref distances (hash-ref special-points 'end)))
;; part 2
-(for/lists (lengths #:result (apply min lengths))
- ([start (in-list (hash-keys terrain-mesh))] #:when (= 0 (hash-ref terrain-mesh start)))
- (match-define-values (distances _) (dijkstra paths start))
- (hash-ref distances (hash-ref special-points 'end)))
+(time (for/lists
+ (lengths #:result (apply min lengths))
+ ([start (in-list (hash-keys terrain-mesh))] #:when (= 0 (hash-ref terrain-mesh start)))
+ (match-define-values (distances _) (bfs paths start))
+ (hash-ref distances (hash-ref special-points 'end))))