diff options
author | Hunky Jimpjorps <thechairman@thechairman.info> | 2022-12-23 10:51:37 -0500 |
---|---|---|
committer | Hunky Jimpjorps <thechairman@thechairman.info> | 2022-12-23 10:51:37 -0500 |
commit | 3f4e251b2e95871b01ce9c33e664bf22f0c415c6 (patch) | |
tree | f7a306dea732314a5b24623dfa18eef407fef4c7 /2022 | |
parent | 149e73dd96ed0fd932d3dadbc8e639ef3ad9112a (diff) | |
download | gleam_aoc-3f4e251b2e95871b01ce9c33e664bf22f0c415c6.tar.gz gleam_aoc-3f4e251b2e95871b01ce9c33e664bf22f0c415c6.zip |
day 22 in progress
Diffstat (limited to '2022')
-rw-r--r-- | 2022/day-22/day-22.rkt | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/2022/day-22/day-22.rkt b/2022/day-22/day-22.rkt new file mode 100644 index 0000000..bcce5f8 --- /dev/null +++ b/2022/day-22/day-22.rkt @@ -0,0 +1,35 @@ +#lang racket + +(require advent-of-code + threading) + +(struct posn (x y) #:transparent) + +(match-define (list raw-map raw-instructions) + (string-split (fetch-aoc-input (find-session) 2022 22 #:cache #true) "\n\n")) + +(define board-map + (for*/hash ([(row y) (in-indexed (string-split raw-map "\n"))] + [(col x) (in-indexed row)] + #:unless (equal? col #\space)) + (define tile + (match col + [#\. 'open] + [#\# 'wall])) + (values (posn x y) tile))) + +(define instructions + (~>> raw-instructions + (regexp-match* #px"(\\d+)|R|L") + (map (match-lambda + [(? string->number n) (string->number n)] + ["R" 'clockwise] + ["L" 'counterclockwise])))) + +(define start-tile + (~>> board-map + hash-keys + (filter (match-lambda + [(posn _ 0) #true] + [_ #false])) + (argmin posn-x)))
\ No newline at end of file |