aboutsummaryrefslogtreecommitdiff
path: root/2020/day-03/day-03.rkt
blob: f540ee62c13f50646488421b2c419fc1bef47380 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#lang racket
(require "../../jj-aoc.rkt"
         threading)

(define (check-for-trees run rise)
  (for*/sum ([(row i) (in-indexed (port->lines (open-day 3 2020)))]
             #:when (= 0 (modulo i rise))
             [possible-tree (in-value (sequence-ref (in-cycle row) (* (/ run rise) i)))]
             #:when (and (char=? possible-tree #\#)))
    1))

;; part 1
(check-for-trees 3 1)

;; part 2
(~>> '((1 1)
       (3 1)
       (5 1)
       (7 1)
       (1 2))
     (map (curry apply check-for-trees))
     (apply *))