aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--day1/part1.clj22
-rw-r--r--day1/part2.clj29
2 files changed, 51 insertions, 0 deletions
diff --git a/day1/part1.clj b/day1/part1.clj
new file mode 100644
index 0000000..3d6a0f9
--- /dev/null
+++ b/day1/part1.clj
@@ -0,0 +1,22 @@
+; Day 1, part 1
+; Read a list of numbers from stdin, separated by newlines.
+; Count occurances of the current number being greater than
+; the previous.
+;
+
+(loop [inc-count 0
+ prev (Integer/parseInt (read-line))
+ ]
+ (let [input (read-line)]
+ (if (not (empty? input))
+ (let [depth (Integer/parseInt input)]
+ (recur
+ (if (> depth prev) (inc inc-count) inc-count)
+ depth
+ )
+ )
+ (println inc-count)
+ )
+ )
+ )
+
diff --git a/day1/part2.clj b/day1/part2.clj
new file mode 100644
index 0000000..b972e11
--- /dev/null
+++ b/day1/part2.clj
@@ -0,0 +1,29 @@
+; Day 1, part 2
+; Read a list of numbers from stdin, separated by newlines.
+; Count occurances of the current sum being greater than
+; the previous, where a sum is that of the current number,
+; the previous number, and the next number.
+;
+
+(loop [inc-count 0
+ buff (repeat 4 (Integer/parseInt (read-line)))
+ ]
+ (let [next (read-line)
+ new-count (if (> (last buff) (first buff))
+ (inc inc-count)
+ inc-count
+ )
+ ]
+ (if (empty? next)
+ (println new-count)
+ (recur
+ new-count
+ (concat
+ (rest buff)
+ [(Integer/parseInt next)]
+ )
+ )
+ )
+ )
+ )
+