Fixed day2/pt1 bug
[adventofcode2019.git] / day01 / fuel.clj
1 (ns aoc.core
2 [:require [clojure.string :as str]])
3
4 (def get-list-from-file
5 #(str/split-lines (slurp %)))
6
7 (def parse-int
8 #(Integer/parseInt %))
9
10 (defn get-fuel-req [mass]
11 (reduce + (take-while #(> % 0) (drop 1 (iterate #(- (quot % 3) 2) mass)))))
12
13 (defn total-fuel-requirement-naive [input]
14 (reduce + (map #(- (quot % 3) 2) input)))
15
16 (defn total-fuel-requirement [input]
17 (reduce + (map get-fuel-req input)))
18
19 (defn -main []
20 (let [input (map parse-int (get-list-from-file "input"))]
21 (println (total-fuel-requirement-naive input))
22 (println (total-fuel-requirement input))))
23
24 (-main)