diff options
author | Hunky Jimpjorps <thechairman@thechairman.info> | 2022-12-13 01:19:05 -0500 |
---|---|---|
committer | Hunky Jimpjorps <thechairman@thechairman.info> | 2022-12-13 01:19:05 -0500 |
commit | fd3d1f61531f5c48125b822ab3bd2cdc65fc9254 (patch) | |
tree | 488275bf0b9ff8d73821bb2a7f3be7bf82e2bcaa /2022 | |
parent | 80fbd3beb20303dc5be6272a6e6e14939d5d94d0 (diff) | |
parent | b70835069c1bcc8a9ca316b1795de3bfd6d6f12e (diff) | |
download | gleam_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.rkt | 14 | ||||
-rw-r--r-- | 2022/day-12/day-12.rkt | 13 |
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)))) |