From f3d5fcd51eb78cdb508868d829ef41741a3f8bcc Mon Sep 17 00:00:00 2001 From: Jordan Doyle Date: Sat, 07 Dec 2024 14:17:44 +0000 Subject: [PATCH] Add 2024 day 3 --- README | 4 ++-- 2024/03.pl | 24 ++++++++++++++++++++++++ 2 files changed, 26 insertions(+), 2 deletions(-) diff --git a/README b/README index e3ffb32..5d29f89 100644 --- a/README +++ a/README @@ -16,8 +16,8 @@ +----------+----------+ +----------+----------+ +----------+----------+ | 1 | Rust | | 1 | Haskell | | 1 | Fortran | | 2 | OCaml | | 2 | Haskell | | 2 | Nix | -+---------------------+ | 3 | Haskell | | 3 | Clojure | - | 4 | Haskell | | 4 | Jsonnet | +| 3 | Perl | | 3 | Haskell | | 3 | Clojure | ++---------------------+ | 4 | Haskell | | 4 | Jsonnet | | 5 | Rust | | 5 | HCL/TF | | 6 | Haskell | | 6 | Apache2 | | 7 | Haskell | +---------------------+ diff --git a/2024/03.pl b/2024/03.pl new file mode 100755 index 0000000..92a689d 100755 --- /dev/null +++ a/2024/03.pl @@ -1,0 +1,24 @@ +#! /usr/bin/env nix-shell +#! nix-shell -i perl -p perl + +$\ = "\n"; +$active = 1; +$part1Acc = 0; +$part2Acc = 0; + +while ($input = <>) { + while ($input =~ /(do\(\)|don't\(\)|mul\((\d{1,3}),(\d{1,3})\))/g) { + if ($1 eq 'do()') { + $active = 1; + } elsif ($1 eq 'don\'t()') { + $active = 0; + } elsif ($active) { + $part2Acc += $2 * $3; + } + + $part1Acc += $2 * $3; + } +} + +print $part1Acc; +print $part2Acc; -- rgit 0.1.5