From a97fbd8cd7001033f090729cf32212f028ef996c Mon Sep 17 00:00:00 2001 From: Matthew Butterick Date: Thu, 24 Dec 2020 21:22:36 -0800 Subject: [PATCH] day 25 --- 2020/25.rkt | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 2020/25.rkt diff --git a/2020/25.rkt b/2020/25.rkt new file mode 100644 index 0000000..078c0a1 --- /dev/null +++ b/2020/25.rkt @@ -0,0 +1,17 @@ +#lang br +(require racket/file rackunit) + +(match-define (list card-pubkey door-pubkey) '(18356117 5909654)) + +(define (transform subject-number [break-proc void]) + (for/fold ([val 1] + [count 0] + #:result (cons val count)) + ([i (in-naturals)] + #:break (break-proc val i)) + (values (remainder (* val subject-number) 20201227) (add1 count)))) + +(define card-loop-size (cdr (transform 7 (λ (val i) (eq? val card-pubkey))))) +(define door-loop-size (cdr (transform 7 (λ (val i) (eq? val door-pubkey))))) + +(check-equal? (car (transform card-pubkey (λ (val i) (eq? i door-loop-size)))) 16902792) \ No newline at end of file