about summary refs log tree commit diff
path: root/users/sterni/exercises/aoc/2022/nix.nix
diff options
context:
space:
mode:
Diffstat (limited to 'users/sterni/exercises/aoc/2022/nix.nix')
-rw-r--r--users/sterni/exercises/aoc/2022/nix.nix31
1 files changed, 29 insertions, 2 deletions
diff --git a/users/sterni/exercises/aoc/2022/nix.nix b/users/sterni/exercises/aoc/2022/nix.nix
index 5bd3e36b5397..ca8bfc6e57df 100644
--- a/users/sterni/exercises/aoc/2022/nix.nix
+++ b/users/sterni/exercises/aoc/2022/nix.nix
@@ -1,3 +1,30 @@
-{ ... }:
+{ lib ? import <nixpkgs/lib> }:
 
-{ }
+let
+  chomp = lib.removeSuffix "\n";
+  lines = s: builtins.filter builtins.isString (builtins.split "\n" (chomp s));
+  sum = builtins.foldl' builtins.add 0;
+
+  day01 =
+    let
+      input =
+        builtins.map
+          (elf:
+            sum (builtins.map builtins.fromJSON (lines elf))
+          )
+          (
+            builtins.filter builtins.isString (
+              builtins.split "\n\n" (builtins.readFile ./01/input)
+            )
+          );
+    in
+    {
+      "1" = builtins.foldl' lib.max (-1) input;
+      "2" = sum (lib.sublist 0 3 (lib.sort (a: b: a >= b) input));
+    };
+
+in
+
+{
+  inherit day01;
+}