commit 89d7940725ecc7ea7113615a492beac12bf61e0a
parent 94b9d5467c0cced56422262a2ccf8a71d946427f
Author: Samir Parikh <noreply@samirparikh.com>
Date: Fri, 28 Oct 2022 13:23:25 +0000
solve part 1 of day09
Diffstat:
2 files changed, 75 insertions(+), 0 deletions(-)
diff --git a/day09/day09.pl b/day09/day09.pl
@@ -0,0 +1,47 @@
+#!/usr/local/bin/perl
+# day 2015-09
+
+use strict;
+use warnings;
+use v5.32;
+use Algorithm::Permute;
+use List::Util qw( min );
+#use Data::Dumper;
+#use lib '.';
+#use Day07 qw< evaluate >;
+
+@ARGV = "input" unless @ARGV;
+chomp( my $input = do { local $/; <> } );
+
+my %distances; # between cities
+my %cities;
+my @route_distances;
+
+foreach ( split /\n/, $input ) {
+ my ( $from, $to, $distance ) = m/(\w+) to (\w+) = (\d+)/;
+ #say "$from\t$to\t$distance";
+ $distances{ $from, $to } = $distance;
+ $distances{ $to, $from } = $distance;
+ $cities{ $from } += 1;
+ $cities{ $to } += 1;
+}
+
+my @cities = keys %cities;
+
+#say Dumper \%distances;
+#say Dumper \%cities;
+#say "@cities";
+
+Algorithm::Permute::permute {
+# print "next permutation: ", join ("->", @cities), "\n";
+ my $distance = 0;
+ foreach my $i ( 0 .. ( scalar @cities ) - 2 ) {
+# say $i;
+ $distance += $distances{ $cities[ $i ], $cities[ $i + 1 ] };
+ }
+# say join (" -> ", @cities), " = ", $distance;
+ push @route_distances => $distance;
+} @cities;
+
+
+say "part 1: ", min @route_distances;
diff --git a/day09/input b/day09/input
@@ -0,0 +1,28 @@
+Faerun to Tristram = 65
+Faerun to Tambi = 129
+Faerun to Norrath = 144
+Faerun to Snowdin = 71
+Faerun to Straylight = 137
+Faerun to AlphaCentauri = 3
+Faerun to Arbre = 149
+Tristram to Tambi = 63
+Tristram to Norrath = 4
+Tristram to Snowdin = 105
+Tristram to Straylight = 125
+Tristram to AlphaCentauri = 55
+Tristram to Arbre = 14
+Tambi to Norrath = 68
+Tambi to Snowdin = 52
+Tambi to Straylight = 65
+Tambi to AlphaCentauri = 22
+Tambi to Arbre = 143
+Norrath to Snowdin = 8
+Norrath to Straylight = 23
+Norrath to AlphaCentauri = 136
+Norrath to Arbre = 115
+Snowdin to Straylight = 101
+Snowdin to AlphaCentauri = 84
+Snowdin to Arbre = 96
+Straylight to AlphaCentauri = 107
+Straylight to Arbre = 14
+AlphaCentauri to Arbre = 46