Commit | Line | Data |
---|---|---|
75918e33 | 1 | (asdf:load-system :adventofcode2020) |
63a814f2 JK |
2 | (in-package #:adventofcode2020) |
3 | ||
4 | (defun calculate-expenses (&rest reports) | |
5 | (let ((prod (apply #'cartesian-product reports))) | |
6 | (loop for tuple in prod | |
7 | when (= (apply #'+ tuple) 2020) | |
8 | return (apply #'* tuple)))) | |
9 | ||
10 | (day 01 input | |
11 | (let ((report (int-list-from input))) | |
12 | (part1 (calculate-expenses report report)) | |
13 | (part2 (calculate-expenses report report report)))) | |
14 | ||
15 | (def-suite day01) | |
16 | (in-suite day01) | |
17 | ||
18 | (test simple-expenses | |
19 | (is (equal | |
20 | 514579 | |
21 | (let ((report '(1721 979 366 299 675 1456))) | |
22 | (calculate-expenses report report))))) | |
23 | ||
24 | (test complex-expenses | |
25 | (is (equal | |
26 | 241861950 | |
27 | (let ((report '(1721 979 366 299 675 1456))) | |
28 | (calculate-expenses report report report))))) | |
29 | ||
30 | (run! 'day01) |