Skip to content

Instantly share code, notes, and snippets.

@winny-

winny-/day1.rkt Secret

Created December 1, 2017 11:32
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save winny-/39dadb0a9d01fd502e1b1bbe8ce8da91 to your computer and use it in GitHub Desktop.
Save winny-/39dadb0a9d01fd502e1b1bbe8ce8da91 to your computer and use it in GitHub Desktop.
#lang racket
(define (part1 ls)
(match-define (list-rest a tail) ls)
(define-values (n p)
(for/fold ([n 0]
[prev a])
([m (append tail (list a))])
(values (if (= prev m)
(+ n m)
n)
m)))
n)
(define (part2 ls)
(define-values (head tail) (split-at ls (quotient (length ls) 2)))
(for/fold ([n 0])
([a ls]
[b (append tail head)])
(if (= a b)
(+ n a)
n)))
(module+ main
(define ls (map (compose string->number string)
(string->list (read-line))))
(displayln (format "Part 1: ~a" (part1 ls)))
(displayln (format "Part 2: ~a" (part2 ls))))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment