This commit is contained in:
2024-12-03 10:41:13 +03:00
parent a7b6626cae
commit 3904efae96
4 changed files with 43 additions and 0 deletions

35
src/day3.clj Normal file
View File

@@ -0,0 +1,35 @@
(ns day3)
(def input (slurp "inputs/day3"))
(defn mul [instr]
(->>
instr
(re-seq #"\d+")
(map parse-long)
(apply *)))
(->> input
(re-seq #"mul\(\d+,\d+\)")
(map mul)
(reduce +)
(println "result:"))
(defn run2 [instructions]
(loop
[instructions
(re-seq #"(don't\(\))|(do\(\))|mul\(\d+,\d+\)" instructions)
do true
result 0]
(if (empty? instructions)
result
(let [instr (first (first instructions))]
(case instr
"do()" (recur (rest instructions) true result)
"don't()" (recur (rest instructions) false result)
(recur (rest instructions)
do
(if do (+ result (mul instr)) result)))))))
(println "result (part 2):" (run2 input))