about summary refs log tree commit diff
path: root/day06.pl
diff options
context:
space:
mode:
Diffstat (limited to 'day06.pl')
-rw-r--r--day06.pl31
1 files changed, 31 insertions, 0 deletions
diff --git a/day06.pl b/day06.pl
new file mode 100644
index 0000000..218531b
--- /dev/null
+++ b/day06.pl
@@ -0,0 +1,31 @@
+#!/usr/bin/perl -w
+use v5.16;
+
+use File::Slurper 'read_lines';
+
+my %orbits;
+
+for (read_lines("day06")) {
+    my ($in, $out) = split /\)/;
+    $orbits{$out} = $in;
+}
+
+my $p1 = 0;
+for (keys %orbits) {
+    while ($_ ne "COM") {
+        $p1++;
+        $_ = $orbits{$_};
+    }
+}
+say $p1;  # 147223
+
+my (@path1, @path2);
+$_ = "YOU"; push @path1, $_ = $orbits{$_} while ($_ ne "COM");
+$_ = "SAN"; push @path2, $_ = $orbits{$_} while ($_ ne "COM");
+
+while ($path1[-1] eq $path2[-1]) {
+    pop @path1;
+    pop @path2;
+}
+
+say @path1 + @path2;  # 340