day 2
This commit is contained in:
parent
0b5ff3eab5
commit
dc612a29a4
|
@ -0,0 +1,56 @@
|
||||||
|
#lang curly-fn racket
|
||||||
|
|
||||||
|
(require "scripts/aoc.rkt")
|
||||||
|
|
||||||
|
;; solution for day 2
|
||||||
|
|
||||||
|
(define (part1 input)
|
||||||
|
(for/sum ([x (in-list input)])
|
||||||
|
(match-define (list x1 x2) x)
|
||||||
|
(+ (match x2
|
||||||
|
["X" 1]
|
||||||
|
["Y" 2]
|
||||||
|
["Z" 3])
|
||||||
|
(match* (x1 x2)
|
||||||
|
[("A" "X") 3]
|
||||||
|
[("A" "Y") 6]
|
||||||
|
[("A" "Z") 0]
|
||||||
|
[("B" "X") 0]
|
||||||
|
[("B" "Y") 3]
|
||||||
|
[("B" "Z") 6]
|
||||||
|
[("C" "X") 6]
|
||||||
|
[("C" "Y") 0]
|
||||||
|
[("C" "Z") 3]))))
|
||||||
|
|
||||||
|
|
||||||
|
(define (part2 input)
|
||||||
|
(for/sum ([x (in-list input)])
|
||||||
|
(match-define (list x1 x2) x)
|
||||||
|
(+ (match x2
|
||||||
|
["X" 0]
|
||||||
|
["Y" 3]
|
||||||
|
["Z" 6])
|
||||||
|
(match* (x1 x2)
|
||||||
|
[("A" "X") 3]
|
||||||
|
[("A" "Y") 1]
|
||||||
|
[("A" "Z") 2]
|
||||||
|
[("B" "X") 1]
|
||||||
|
[("B" "Y") 2]
|
||||||
|
[("B" "Z") 3]
|
||||||
|
[("C" "X") 2]
|
||||||
|
[("C" "Y") 3]
|
||||||
|
[("C" "Z") 1]))))
|
||||||
|
|
||||||
|
(define (parse fname)
|
||||||
|
(for/list ([x (in-list (file->lines fname))])
|
||||||
|
(string-split x " ")))
|
||||||
|
|
||||||
|
(module+ test
|
||||||
|
(require rackunit)
|
||||||
|
(displayln "no tests :("))
|
||||||
|
|
||||||
|
(module+ main
|
||||||
|
(define input (parse "inputs/2"))
|
||||||
|
(answer 2 1 (time (part1 input)))
|
||||||
|
(answer 2 2 (time (part2 input)))
|
||||||
|
(displayln "meow"))
|
Loading…
Reference in New Issue