diff options
Diffstat (limited to 'day06.pl')
-rw-r--r-- | day06.pl | 31 |
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 |