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