Commit 92abe83 1 parent 150bd29 commit 92abe83 Copy full SHA for 92abe83
File tree 7 files changed +24
-22
lines changed
7 files changed +24
-22
lines changed Original file line number Diff line number Diff line change 11
11
12
12
(defn gear-ratios [gear-values]
13
13
(keep
14
- #(when (= (count %) 2 )
14
+ #(when (= 2 (count %))
15
15
(reduce * %))
16
16
gear-values))
17
17
Original file line number Diff line number Diff line change 23
23
(fn [amounts line]
24
24
(let [copies (amounts line)]
25
25
(reduce (fn [amounts delta]
26
- (update amounts (+ line delta 1 ) + copies))
26
+ (update amounts (+ line delta) + copies))
27
27
amounts
28
- (range ( winners line)))))
28
+ (range 1 ( inc ( winners line) )))))
29
29
(vec (repeat size 1 ))
30
30
(range size))))
31
31
Original file line number Diff line number Diff line change 3
3
4
4
5
5
(defn parse-line [line]
6
- (let [[dest src rng ] (aoc/integers line)]
6
+ (let [[dest src len ] (aoc/integers line)]
7
7
{:lo src
8
- :hi (+ src (dec rng ))
8
+ :hi (+ src (dec len ))
9
9
:diff (- dest src)}))
10
10
11
11
(defn parse-maps [maps]
14
14
(sort-by :lo )))
15
15
16
16
(defn seed-ranges [seeds]
17
- (->> (for [[st rng] (partition 2 seeds)]
18
- {:start st
19
- :stop (+ st (dec rng))})
20
- (sort-by :start )))
17
+ (sort-by
18
+ :start
19
+ (for [[start len] (partition 2 seeds)]
20
+ {:start start
21
+ :stop (+ start (dec len))})))
21
22
22
23
23
24
(defn convert-number [rules src]
Original file line number Diff line number Diff line change 19
19
20
20
21
21
(defn solve [input]
22
- (let [[times distances] (aoc/parse-input input :ints )
23
- time-2 (fix-keming times)
24
- distance-2 (fix-keming distances)]
25
- [(transduce (map find-winners) * (zipmap times distances))
26
- (find-winners [time-2 distance-2])]))
22
+ (let [document (aoc/parse-input input :ints )]
23
+ [(transduce (map find-winners) * (aoc/transpose document))
24
+ (find-winners (mapv fix-keming document))]))
27
25
28
26
29
27
(solve (aoc/read-file 6 ))
Original file line number Diff line number Diff line change 42
42
43
43
44
44
(defn solve [input]
45
- (let [lines (aoc/parse-input input)
46
- galaxies (find-galaxies lines)
45
+ (let [lines (aoc/parse-input input)
46
+ galaxies (find-galaxies lines)
47
47
galaxies-x (sort (map first galaxies))
48
48
galaxies-y (sort (map second galaxies))
49
49
empty-rows (empty-lines lines)
50
50
empty-cols (empty-lines (aoc/transpose lines))
51
- distances (+ (calc-dist galaxies-x)
52
- (calc-dist galaxies-y))
51
+ distances (+ (calc-dist galaxies-x)
52
+ (calc-dist galaxies-y))
53
53
expansions (+ (expansion galaxies-x empty-cols)
54
54
(expansion galaxies-y empty-rows))]
55
55
[(+ distances expansions)
Original file line number Diff line number Diff line change 6
6
(aoc/count-if false ? (map = a b)))
7
7
8
8
9
- (defn is- mirror? [part pattern nrettap line]
9
+ (defn mirror? [part pattern nrettap line]
10
10
(let [before (take-last line nrettap)
11
11
after (drop line pattern)
12
12
diffs (map differences before after)]
17
17
18
18
(defn mirror-line [part pattern]
19
19
(aoc/find-first
20
- (partial is- mirror? part pattern (rseq pattern))
20
+ (partial mirror? part pattern (rseq pattern))
21
21
(range 1 (count pattern))))
22
22
23
23
Original file line number Diff line number Diff line change 4
4
org.clojure/data.int-map {:mvn/version " 1.2.1" }
5
5
org.clojure/core.async {:mvn/version " 1.6.681" }
6
6
org.flatland/ordered {:mvn/version " 1.15.11" }
7
- org.clojure/data.priority-map {:mvn/version " 1.1.0" }}
7
+ org.clojure/data.priority-map {:mvn/version " 1.1.0" }
8
+ io.github.engelberg/better-cond {:git/tag " v2.1.5" :git/sha " 156bc5f" }}
8
9
:aliases
9
10
{:profile {:jvm-opts [" -Djdk.attach.allowAttachSelf" ]
10
11
:extra-deps {criterium/criterium {:mvn/version " 0.4.6" }
11
12
com.clojure-goes-fast/clj-async-profiler {:mvn/version " 1.1.0" }
12
13
com.taoensso/tufte {:mvn/version " 2.6.3" }}}
13
- :viz {:extra-deps {quil/quil {:mvn/version " 4.3.1323" }}}}}
14
+ :viz {:extra-deps {quil/quil {:mvn/version " 4.3.1323" }}}
15
+ :splint {:extra-deps {io.github.noahtheduke/splint {:mvn/version " 1.15.0" }}
16
+ :main-opts [" -m" " noahtheduke.splint" ]}}}
You can’t perform that action at this time.
0 commit comments