this repo has no description
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

(D3P1): Solution

+41
+4
resources/03-test.txt
··· 1 + 987654321111111 2 + 811111111111119 3 + 234234234234278 4 + 818181911112111
+37
src/aoc2025/day3.clj
··· 1 + (ns aoc2025.day3 2 + (:require [aoc2025.util :as util] 3 + [clojure.string :as str])) 4 + 5 + 6 + (defn- parse-file [fname] (->> fname util/read-file (map (util/splarse #"")))) 7 + 8 + (defn- indexed-preserving-max 9 + [[idxa a :as av] [idxb b :as bv]] 10 + (cond 11 + (> b a) bv 12 + (> a b) av 13 + (= a b) av)) 14 + 15 + (defn- grab-biggest 16 + ([bank] (grab-biggest 1 [] bank)) 17 + ([padding found bank] 18 + (let [indexed-bank (util/minv bank) 19 + [index-biggest value-biggest] (->> indexed-bank (drop-last padding) (reduce indexed-preserving-max))] 20 + (if (zero? padding) 21 + (conj found value-biggest) 22 + #(grab-biggest (dec padding) 23 + (conj found value-biggest) 24 + (drop (inc index-biggest) bank)))))) 25 + 26 + (defn- part1 [banks] 27 + (->> banks 28 + (map (comp util/gluen #(trampoline grab-biggest %))) 29 + (reduce +))) 30 + 31 + (defn solve 32 + ([] (solve "03.txt")) 33 + ([fname] 34 + (->> (parse-file fname) part1))) 35 + 36 + (solve "03-test.txt") 37 + (solve)