Advent 2021, fix formatting.

https://docs.racket-lang.org/style/Textual_Matters.html
This commit is contained in:
Érico Nogueira 2021-12-06 05:19:27 -03:00
parent 1b8e1f526b
commit cd9bd8fa42
7 changed files with 73 additions and 73 deletions

View File

@ -7,10 +7,10 @@
(define count 0)
(define old 5000)
(for ([t (in-lines)])
(define new (string->number t))
(if (> new old)
(set! count (+ count 1))
#f)
(set! old new))
(define new (string->number t))
(if (> new old)
(set! count (+ count 1))
#f)
(set! old new))
(display count)

View File

@ -2,8 +2,8 @@
(define l null)
(for ([t (in-lines)])
(define new (string->number t))
(set! l (cons new l)))
(define new (string->number t))
(set! l (cons new l)))
(define v (list->vector (reverse l)))
@ -16,8 +16,8 @@
(define count 0)
(define len (vector-length v))
(for/list ([i (in-range len)])
(if (and (<= (+ i 4) len) (< (vsum v i) (vsum v (+ i 1))))
(set! count (+ count 1))
#f))
(if (and (<= (+ i 4) len) (< (vsum v i) (vsum v (+ i 1))))
(set! count (+ count 1))
#f))
(display count)

View File

@ -10,19 +10,19 @@
(define v 0)
(for ([t (in-lines)])
(when (string-prefix? t "up")
(set! v (string->number (string-trim t "up ")))
(set! d (- d v))
(set! aim (- aim v)))
(when (string-prefix? t "down")
(set! v (string->number (string-trim t "down ")))
(set! d (+ d v))
(set! aim (+ aim v)))
(when (string-prefix? t "forward")
(set! v (string->number (string-trim t "forward ")))
(set! h (+ h v))
(set! h2 (+ h2 v))
(set! d2 (+ d2 (* aim v)))))
(when (string-prefix? t "up")
(set! v (string->number (string-trim t "up ")))
(set! d (- d v))
(set! aim (- aim v)))
(when (string-prefix? t "down")
(set! v (string->number (string-trim t "down ")))
(set! d (+ d v))
(set! aim (+ aim v)))
(when (string-prefix? t "forward")
(set! v (string->number (string-trim t "forward ")))
(set! h (+ h v))
(set! h2 (+ h2 v))
(set! d2 (+ d2 (* aim v)))))
(display (* h d))
(display " ")

View File

@ -12,13 +12,13 @@
(define binary-len 0)
(for ([t (in-lines)])
(define l (string->list t))
(for ([v (enumerate (reverse l))])
(set! binary-len (+ 1 (car v))) ; will take the last index
(when (equal? #\1 (cdr v))
(define index (- (- len (car v)) 1))
(vector-set! onecount index (add1 (vector-ref onecount index)))))
(set! slist (cons (list->vector l) slist)))
(define l (string->list t))
(for ([v (enumerate (reverse l))])
(set! binary-len (+ 1 (car v))) ; will take the last index
(when (equal? #\1 (cdr v))
(define index (- (- len (car v)) 1))
(vector-set! onecount index (add1 (vector-ref onecount index)))))
(set! slist (cons (list->vector l) slist)))
(display " binary-len: ")
(display binary-len)
@ -34,11 +34,11 @@
(define (bit-criteria lines pos bias)
(define count (for/sum ([t lines] #:when (equal? (vector-ref t pos) #\1)) 1))
(if (>= (* 2 count) (length lines))
(if (equal? 1 bias) #\1 #\0)
(if (equal? 1 bias) #\0 #\1)))
(if (equal? 1 bias) #\1 #\0)
(if (equal? 1 bias) #\0 #\1)))
(define (select-lines lines pos value)
(filter (lambda (x) (equal? value (vector-ref x pos))) lines))
;(for/list ([t lines] #:when (equal? value (vector-ref t pos))) t))
;(for/list ([t lines] #:when (equal? value (vector-ref t pos))) t))
; part 1 variables
(define gamma (make-vector binary-len #\0))
@ -48,16 +48,16 @@
(define co2 slist)
(for ([index (in-range binary-len)])
(define v (vector-ref onecount (+ index (- len binary-len))))
(if (>= (* 2 v) (length slist))
(vector-set! gamma index #\1)
(vector-set! epsilon index #\1))
(when (> (length oxygen) 1)
(define c (bit-criteria oxygen index 1))
(set! oxygen (select-lines oxygen index c)))
(when (> (length co2) 1)
(define c (bit-criteria co2 index 0))
(set! co2 (select-lines co2 index c))))
(define v (vector-ref onecount (+ index (- len binary-len))))
(if (>= (* 2 v) (length slist))
(vector-set! gamma index #\1)
(vector-set! epsilon index #\1))
(when (> (length oxygen) 1)
(define c (bit-criteria oxygen index 1))
(set! oxygen (select-lines oxygen index c)))
(when (> (length co2) 1)
(define c (bit-criteria co2 index 0))
(set! co2 (select-lines co2 index c))))
(display " res1: ")
(display (* (binary-vector-to-num gamma) (binary-vector-to-num epsilon)))

View File

@ -8,12 +8,12 @@
(define (make-line t)
(define l (string-split t))
(for/vector ([v l])
(mcons (string->number v) 0)))
(mcons (string->number v) 0)))
(define slist null)
(for ([t (in-lines)])
(define entry (list->vector (map (lambda(x)(make-line x)) (for/list ([c (in-range size)]) (read-line)))))
(set! slist (append slist (list entry))))
(define entry (list->vector (map (lambda(x)(make-line x)) (for/list ([c (in-range size)]) (read-line)))))
(set! slist (append slist (list entry))))
(define (accessb b l c)
(vector-ref (vector-ref b l) c))
@ -21,31 +21,31 @@
(define (check-board b)
(define flag #f)
(for ([v (in-range size)] #:break flag)
(define count-l (for/sum ([index (in-range size)]) (mcdr (accessb b v index))))
(define count-c (for/sum ([index (in-range size)]) (mcdr (accessb b index v))))
(set! flag (or (equal? count-c size) (equal? count-l size))))
(define count-l (for/sum ([index (in-range size)]) (mcdr (accessb b v index))))
(define count-c (for/sum ([index (in-range size)]) (mcdr (accessb b index v))))
(set! flag (or (equal? count-c size) (equal? count-l size))))
flag)
(define (find-value b v)
(define answer null)
(for ([l (in-range size)] #:break (not (null? answer)))
(for ([c (in-range size)] #:break (not (null? answer)))
(when (equal? (mcar (accessb b l c)) v)
(set! answer (cons l c)))))
(for ([c (in-range size)] #:break (not (null? answer)))
(when (equal? (mcar (accessb b l c)) v)
(set! answer (cons l c)))))
answer)
(define (get-points b n)
(* n (for*/sum ([l (in-range size)] [c (in-range size)])
(define v (accessb b l c))
(if (equal? (mcdr v) 1) 0 (mcar v)))))
(define v (accessb b l c))
(if (equal? (mcdr v) 1) 0 (mcar v)))))
; we'll pick the first and last results from this
(for ([n nlist] #:break (null? slist))
(for ([b slist])
(define p (find-value b n))
(unless (null? p)
(set-mcdr! (vector-ref (vector-ref b (car p)) (cdr p)) 1))
(when (check-board b)
(set! slist (remq b slist))
(display "\nwon: ")
(display (get-points b n)))))
(for ([b slist])
(define p (find-value b n))
(unless (null? p)
(set-mcdr! (vector-ref (vector-ref b (car p)) (cdr p)) 1))
(when (check-board b)
(set! slist (remq b slist))
(display "\nwon: ")
(display (get-points b n)))))

View File

@ -38,17 +38,17 @@
(define p1 (car v))
(define p2 (cdrm v))
(if (equal-x p1 p2)
(iterate-y p1 p2)
(iterate-x p1 p2)))
(iterate-y p1 p2)
(iterate-x p1 p2)))
(define (process-v2 v)
(define p1 (car v))
(define p2 (cdrm v))
(if (equal-x p1 p2)
(iterate-y p1 p2)
(if (equal-y p1 p2)
(iterate-x p1 p2)
(iterate-xy p1 p2))))
(iterate-y p1 p2)
(if (equal-y p1 p2)
(iterate-x p1 p2)
(iterate-xy p1 p2))))
(define h1 (make-hash))
(define h2 (make-hash))

View File

@ -15,10 +15,10 @@
; input desired days HERE
(for ([i (in-range 256)])
(define holder (vector-ref sv 0))
(for ([j (in-range 1 9)])
(vector-set! sv (sub1 j) (vector-ref sv j)))
(vector-set! sv 6 (+ (vector-ref sv 6) holder))
(vector-set! sv 8 holder))
(define holder (vector-ref sv 0))
(for ([j (in-range 1 9)])
(vector-set! sv (sub1 j) (vector-ref sv j)))
(vector-set! sv 6 (+ (vector-ref sv 6) holder))
(vector-set! sv 8 holder))
(total-fish sv)