feat: add benchmark
This commit is contained in:
parent
138f379a40
commit
04a861dfb9
22
main.clj
22
main.clj
@ -2,15 +2,25 @@
|
||||
"Advent Of Code 2023 solved in Clojure"
|
||||
(:require
|
||||
[day01]
|
||||
[day02]))
|
||||
[day02])
|
||||
(:import
|
||||
[java.time Instant Duration]))
|
||||
|
||||
(defn benchmark
|
||||
[f day part]
|
||||
(let [then (Instant/now)
|
||||
result (f)
|
||||
now (Instant/now)
|
||||
time (.toMillis (Duration/between then now))]
|
||||
(println (str "Day " day " part " part ": " result " (" time " ms)"))))
|
||||
|
||||
(defn aoc-23 []
|
||||
(printf "Advent of Code 2023, solved in Clojure.\n\n")
|
||||
(println (str "Day 01 part 1: " (day01/part1)))
|
||||
(println (str "Day 01 part 2: " (day01/part2)))
|
||||
(println (str "Day 02 part 1: " (day02/part1)))
|
||||
(println (str "Day 02 part 2: " (day02/part2)))
|
||||
(println "the end."))
|
||||
(benchmark day01/part1 "01" "1")
|
||||
(benchmark day01/part2 "01" "2")
|
||||
(benchmark day02/part1 "02" "1")
|
||||
(benchmark day02/part2 "02" "2")
|
||||
(println "\nthe end."))
|
||||
|
||||
(aoc-23)
|
||||
|
||||
|
@ -7,6 +7,18 @@
|
||||
(def contents ":: String" (utils/read-file "01" false))
|
||||
(def lines ":: Vector of String" (clojure.string/split-lines contents))
|
||||
|
||||
; cubes: red, green, blue
|
||||
; the Elf will reach into the bag, grab a handful of random cubes,
|
||||
; show them to you, and then put them back in the bag. He'll do this a few times per game
|
||||
;
|
||||
; Each game is listed with its ID number followed by a semicolon-separated list
|
||||
; of subsets of cubes that were revealed from the bag
|
||||
;
|
||||
; Game 1: 3 blue, 4 red; 1 red, 2 green, 6 blue; 2 green
|
||||
;
|
||||
; Determine which games would have been possible if the bag had been loaded
|
||||
; with only 12 red cubes, 13 green cubes, and 14 blue cubes
|
||||
|
||||
(defn part1
|
||||
":: () -> String"
|
||||
[]
|
||||
|
Loading…
Reference in New Issue
Block a user