X-Git-Url: http://git.jkinsey.net/?p=adventofcode2019.git;a=blobdiff_plain;f=src%2Fadventofcode2019%2Fday16.clj;fp=src%2Fadventofcode2019%2Fday16.clj;h=04d6714636da5e79938305e86fead68c91998a86;hp=0000000000000000000000000000000000000000;hb=21ab31d9418c308ae58d73141184be8b42a11ab8;hpb=49dee54b66741b6ad08ef15fb46e15310edbd765 diff --git a/src/adventofcode2019/day16.clj b/src/adventofcode2019/day16.clj new file mode 100644 index 0000000..04d6714 --- /dev/null +++ b/src/adventofcode2019/day16.clj @@ -0,0 +1,33 @@ +(ns adventofcode2019.day16 + [:require [adventofcode2019.lib :refer :all] + [clojure.string :as str]]) + +(defn parse-input [input] + (map (comp parse-int str) input)) + +(defn phase [input] + (let [pattern (fn [n] + (->> [0 1 0 -1] + (mapcat (partial repeat n)) + (cycle) + (rest))) + transform (fn [i n] + (->> (map * input (pattern (inc i))) + (reduce +) + (str) + (last) + (str) + (parse-int)))] + (map-indexed transform input))) + +(defn result-of [input] + (as-> (parse-input input) it + (iterate phase it) + (nth it 100) + (take 8 it) + (str/join it))) + +(defn day16 [] + (let [[input] (get-list-from-file (input-file))] + (part1 (result-of input)) + #_(part2)))