You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
30 lines
689 B
Clojure
30 lines
689 B
Clojure
3 years ago
|
; 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)]
|
||
|
)
|
||
|
)
|
||
|
)
|
||
|
)
|
||
|
)
|
||
|
|