1
0
Fork 0
adventofcode/src/05.rkt

22 lines
573 B
Racket

#lang racket
(require racket/set
"../lib.rkt")
(define (string->seat str)
(~>> str
(regexp-replaces _ '([#rx"F" "0"] [#rx"B" "1"] [#rx"L" "0"] [#rx"R" "1"]))
(string-append "#b")
string->number))
(define input (map string->seat (problem-input 5)))
(define-values (part1 part2)
(let* ([minimum (apply min input)]
[maximum (apply max input)]
[seats (list->set (range minimum (add1 maximum)))]
[filled (list->set input)])
(values maximum (set-first (set-subtract seats filled)))))
(show-solution part1 part2)