From 8ab65dc2da1742eb86ec636c50c7018385b68167 Mon Sep 17 00:00:00 2001 From: "J.J" Date: Thu, 30 Nov 2023 17:10:00 -0500 Subject: prep for 2023, renaming for consistency --- aoc2022/day-22/day-22.rkt | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 aoc2022/day-22/day-22.rkt (limited to 'aoc2022/day-22') diff --git a/aoc2022/day-22/day-22.rkt b/aoc2022/day-22/day-22.rkt new file mode 100644 index 0000000..bcce5f8 --- /dev/null +++ b/aoc2022/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 -- cgit v1.2.3