From 8ca091e841ae891bfd556cf55e519a1ccf014281 Mon Sep 17 00:00:00 2001 From: Leah Neukirchen Date: Sat, 18 Dec 2021 17:07:40 +0100 Subject: day17 --- day17.clj | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 day17.clj (limited to 'day17.clj') diff --git a/day17.clj b/day17.clj new file mode 100644 index 0000000..be972ba --- /dev/null +++ b/day17.clj @@ -0,0 +1,36 @@ +(ns org.vuxu.aoc2021.day17 + (:require [clojure.string :as str])) + +(def data + (->> (slurp "day17") + (re-seq #"-?\d+") + (map parse-long))) + +(def x-range (take 2 data)) +(def y-range (drop 2 data)) + +(def part1 + (quot (* (Math/abs (first y-range)) + (dec (Math/abs (first y-range)))) 2)) +;; => 3655 + +(defn check [[x y] [vx vy]] + (cond + (and (<= (first x-range) x (second x-range)) + (<= (first y-range) y (second y-range))) + true + + (< y (first y-range)) + false + + :else + (recur [(+ x vx) (+ y vy)] + [(- vx (Integer/signum vx)) (dec vy)]))) + +(def part2 + (count + (filter identity + (for [vx (range (inc (second x-range))) + vy (range (first y-range) (inc (Math/abs (first y-range))))] + (check [0 0] [vx vy]))))) +;; => 1447 -- cgit 1.4.1