add day 2

master
Clyne 3 years ago
parent 812460220e
commit cc70fd90f3

@ -0,0 +1,33 @@
; Day 2, part 2
; 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])
(loop [xpos 0 depth 0]
(let [input (read-line)]
(if (empty? input)
(println (* xpos depth))
(let [ins (str/split input #" ")
n (Integer/parseInt (second ins))
]
(recur
(if (= (first ins) "forward")
(+ xpos n)
xpos
)
(case (first ins)
"up" (- depth n)
"down" (+ depth n)
depth
)
)
)
)
)
)

@ -0,0 +1,36 @@
; Day 2, part 2
; Read a list of instructions from stdin:
; "down X" increases aim number by X,
; "up X" decreases aim by X,
; "forward X" increases xpos by X and depth by (aim * X).
; Print (xpos * depth) after end of data.
;
(require '[clojure.string :as str])
(loop [xpos 0 depth 0 aim 0]
(let [input (read-line)]
(if (empty? input)
(println (* xpos depth))
(let [ins (str/split input #" ")
n (Integer/parseInt (second ins))
]
(recur
(if (= (first ins) "forward")
(+ xpos n)
xpos
)
(if (= (first ins) "forward")
(+ depth (* aim n))
depth
)
(case (first ins)
"down" (+ aim n)
"up" (- aim n)
aim)
)
)
)
)
)
Loading…
Cancel
Save