Compare commits

..

2 Commits

Author SHA1 Message Date
04a861dfb9 feat: add benchmark 2024-11-11 11:50:08 -05:00
138f379a40 feat: files for day 2 2024-11-11 11:18:46 -05:00
3 changed files with 50 additions and 5 deletions

View File

@ -1,12 +1,26 @@
(ns main
"Advent Of Code 2023 solved in Clojure"
(:require
[day01]))
[day01]
[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))))
(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)

View File

@ -24,7 +24,7 @@
(def contents (utils/read-file "01" false))
; Vector of String
(def lines "Vector of String" (clojure.string/split-lines contents))
(def lines ":: Vector of String" (clojure.string/split-lines contents))
; Char -> Bool
(defn is-digit? [c]
@ -74,7 +74,7 @@
; tests every character on every number
(defn sanitize-2
"String -> String"
":: String -> String"
[input] (reduce (fn [acc str-pos]
; find which, if any, of the patterns matches on this pos
; match :: Maybe (String String)

31
src/day02.clj Normal file
View File

@ -0,0 +1,31 @@
(ns day02
"Day 02 funtions"
(:require
[utils]
[clojure.string]))
(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"
[]
"")
(defn part2
":: () -> String"
[]
"")