--- /dev/null
+(ns aoc.core
+ [:require [clojure.string :as str]])
+
+(def get-list-from-file
+ #(str/split-lines (slurp %)))
+
+(def parse-int
+ #(Integer/parseInt %))
+
+(defn get-fuel-req [mass]
+ (reduce + (take-while #(> % 0) (drop 1 (iterate #(- (quot % 3) 2) mass)))))
+
+(defn total-fuel-requirement-naive [input]
+ (reduce + (map #(- (quot % 3) 2) input)))
+
+(defn total-fuel-requirement [input]
+ (reduce + (map get-fuel-req input)))
+
+(defn -main []
+ (let [input (map parse-int (get-list-from-file "input"))]
+ (println (total-fuel-requirement-naive input))
+ (println (total-fuel-requirement input))))
+
+(-main)