blob: 4eb8323c8e57ac32557d73f1d1b61a752e3d66e3 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
#lang racket
(require advent-of-code
threading
(only-in relation ->list ->set)
(only-in algorithms sliding))
(define buffer (~> (fetch-aoc-input (find-session) 2022 6)))
(define (find-marker data type)
(define n
(match type
['start-of-packet 4]
['start-of-message 14]))
(for/first ([chunk (in-list (sliding (->list data) n))]
[i (in-naturals n)]
#:when (= n (~> chunk remove-duplicates length)))
i))
;; part 1
(find-marker buffer 'start-of-packet)
;; part 2
(find-marker buffer 'start-of-message)
|