]>
Commit | Line | Data |
---|---|---|
1 | (ns adventofcode2019.day16 | |
2 | [:require [adventofcode2019.lib :refer :all] | |
3 | [clojure.string :as str]]) | |
4 | ||
5 | (defn parse-input [input] | |
6 | (map (comp parse-int str) input)) | |
7 | ||
8 | (defn phase [input] | |
9 | (let [pattern (fn [n] | |
10 | (->> [0 1 0 -1] | |
11 | (mapcat (partial repeat n)) | |
12 | (cycle) | |
13 | (rest))) | |
14 | transform (fn [i n] | |
15 | (->> (map * input (pattern (inc i))) | |
16 | (reduce +) | |
17 | (str) | |
18 | (last) | |
19 | (str) | |
20 | (parse-int)))] | |
21 | (map-indexed transform input))) | |
22 | ||
23 | (defn result-of [input] | |
24 | (as-> (parse-input input) it | |
25 | (iterate phase it) | |
26 | (nth it 100) | |
27 | (take 8 it) | |
28 | (str/join it))) | |
29 | ||
30 | (defn day16 [] | |
31 | (let [[input] (get-list-from-file (input-file))] | |
32 | (part1 (result-of input)) | |
33 | #_(part2))) |