Commit | Line | Data |
---|---|---|
dcb3af31 JK |
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) |