🏡 index : ~doyle/aoc.git

author Jordan Doyle <jordan@doyle.la> 2024-12-07 14:17:44.0 +00:00:00
committer Jordan Doyle <jordan@doyle.la> 2024-12-07 14:17:44.0 +00:00:00
commit
f3d5fcd51eb78cdb508868d829ef41741a3f8bcc [patch]
tree
7ada1ae489221e16d97ea44069cc538153f4c552
parent
01f8d02121c2e8dee088e612abda73dbcbd475c4
download
f3d5fcd51eb78cdb508868d829ef41741a3f8bcc.tar.gz

Add 2024 day 3



Diff

 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;