advent-of-code/2020/day01/day01.rkt
2024-11-12 21:46:18 +01:00

37 lines
798 B
Racket

#lang racket
(module+ test
(require rackunit))
(module+ main
(displayln "Day 1"))
(define (read-input filename)
(map string->number (file->lines filename)))
(define (part1 filename)
(define expenses (read-input filename))
(for*/last ([a (in-list expenses)]
[b (in-list expenses)]
#:final (= 2020 (+ a b)))
(* a b)))
(module+ test
(check-eq? (part1 "test") 514579))
(module+ main
(displayln (part1 "input")))
(define (part2 filename)
(define expenses (read-input filename))
(for*/last ([a (in-list expenses)]
[b (in-list expenses)]
[c (in-list expenses)]
#:final (= 2020 (+ a b c)))
(* a b c)))
(module+ test
(check-eq? (part2 "test") 241861950))
(module+ main
(displayln (part2 "input")))