diff options
Diffstat (limited to 'year2021/day2/part1.clj')
-rw-r--r-- | year2021/day2/part1.clj | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/year2021/day2/part1.clj b/year2021/day2/part1.clj new file mode 100644 index 0000000..e4e9d49 --- /dev/null +++ b/year2021/day2/part1.clj @@ -0,0 +1,26 @@ +; Day 2, part 1 +; Read a list of instructions from stdin: +; "down X" increases depth number by X, +; "up X" decreases depth by X, +; "forward X" increases xpos by X. +; Print (xpos * depth) after end of data. +; + +(require '[clojure.string :as str]) + +(println + (reduce * + (vals + (reduce + #(case (first %2) + "forward" (update %1 :xpos + (second %2)) + "up" (update %1 :depth - (second %2)) + "down" (update %1 :depth + (second %2)) + ) + {:xpos 0 :depth 0} + (->> (slurp "./in") + str/split-lines + (map #(str/split % #" ")) + (map #(update % 1 read-string)) + ))))) + |