From cc8f474aeca07cebe23fa60c153c84b6a256f2e0 Mon Sep 17 00:00:00 2001 From: June McEnroe Date: Sun, 12 Dec 2021 12:38:09 -0500 Subject: Solve day 12 part 1 --- 2021/day12.pl | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 2021/day12.pl (limited to '2021') diff --git a/2021/day12.pl b/2021/day12.pl new file mode 100644 index 0000000..ceef3e0 --- /dev/null +++ b/2021/day12.pl @@ -0,0 +1,27 @@ +use strict; +use warnings; +my %edges; +while (<>) { + /(\w+)-(\w+)/; + $edges{$1} //= []; + $edges{$2} //= []; + push @{$edges{$1}}, $2; + push @{$edges{$2}}, $1; +} +my $paths = 0; +my @queue = (['start']); +while (@queue) { + my @path = @{shift @queue}; + my %visited = map { $_ => 1 } @path; + for (@{$edges{$path[0]}}) { + if ($_ eq 'end') { + $paths++; + } elsif (/[a-z]/ && $visited{$_}) { + next; + } else { + my @next = ($_, @path); + push @queue, \@next; + } + } +} +print "$paths\n"; -- cgit 1.4.1