From d7c6cfc828feda16797f9fdeddcf4317e092457b Mon Sep 17 00:00:00 2001 From: Jordan Doyle Date: Sat, 07 Dec 2024 19:22:46 +0000 Subject: [PATCH] Add 2024 day 5 --- README | 4 ++-- 2024/05.php | 73 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 75 insertions(+), 2 deletions(-) diff --git a/README b/README index 17ee834..05114d6 100644 --- a/README +++ a/README @@ -18,8 +18,8 @@ | 2 | OCaml | | 2 | Haskell | | 2 | Nix | | 3 | Perl | | 3 | Haskell | | 3 | Clojure | | 4 | Rust | | 4 | Haskell | | 4 | Jsonnet | -+---------------------+ | 5 | Rust | | 5 | HCL/TF | - | 6 | Haskell | | 6 | Apache2 | +| 5 | PHP | | 5 | Rust | | 5 | HCL/TF | ++---------------------+ | 6 | Haskell | | 6 | Apache2 | | 7 | Haskell | +---------------------+ | 8 | Haskell | | 9 | Haskell | diff --git a/2024/05.php b/2024/05.php new file mode 100755 index 0000000..5e30c4f 100755 --- /dev/null +++ a/2024/05.php @@ -1,0 +1,73 @@ +#!/usr/bin/env nix-shell + count(array_intersect($v, $printItems)), $dependencies); + $queue = array_keys(array_filter($remainingDependencies, fn ($c) => $c == 0)); + $sortedPages = []; + + while (!empty($queue)) { + $current = array_shift($queue); + $sortedPages[] = $current; + + foreach ($dependents[$current] ?? [] as $dependent) { + $remainingDependencies[$dependent]--; + if ($remainingDependencies[$dependent] == 0) { + $queue[] = $dependent; + } + } + } + + $sortedPrintItems = array_values(array_filter($sortedPages, fn($item) => in_array($item, $printItems))); + $part2 += $sortedPrintItems[(count($sortedPrintItems) - 1) / 2]; +} + +var_dump($part2); + -- rgit 0.1.5