X-Git-Url: http://git.jkinsey.net/?p=adventofcode2020.git;a=blobdiff_plain;f=src%2Fday01.lisp;fp=src%2Fday01.lisp;h=adb36e6154b01b1e4fd1bcbc4d4a6b809f63bc7b;hp=0000000000000000000000000000000000000000;hb=63a814f25cb8eff79f8f566f75b7b5fdac549f5f;hpb=3ef62a9d5cf95c218e80455021e69d3bf5bf1541 diff --git a/src/day01.lisp b/src/day01.lisp new file mode 100644 index 0000000..adb36e6 --- /dev/null +++ b/src/day01.lisp @@ -0,0 +1,29 @@ +(in-package #:adventofcode2020) + +(defun calculate-expenses (&rest reports) + (let ((prod (apply #'cartesian-product reports))) + (loop for tuple in prod + when (= (apply #'+ tuple) 2020) + return (apply #'* tuple)))) + +(day 01 input + (let ((report (int-list-from input))) + (part1 (calculate-expenses report report)) + (part2 (calculate-expenses report report report)))) + +(def-suite day01) +(in-suite day01) + +(test simple-expenses + (is (equal + 514579 + (let ((report '(1721 979 366 299 675 1456))) + (calculate-expenses report report))))) + +(test complex-expenses + (is (equal + 241861950 + (let ((report '(1721 979 366 299 675 1456))) + (calculate-expenses report report report))))) + +(run! 'day01)