From 27232da67afa8341279a318f5d22591c44f5a611 Mon Sep 17 00:00:00 2001 From: David Ferrone Date: Mon, 27 Nov 2023 16:31:30 -0500 Subject: Week 245 --- challenge-245/zapwai/perl/ch-1.pl | 9 +++++++++ challenge-245/zapwai/perl/ch-2.pl | 29 +++++++++++++++++++++++++++++ 2 files changed, 38 insertions(+) create mode 100644 challenge-245/zapwai/perl/ch-1.pl create mode 100644 challenge-245/zapwai/perl/ch-2.pl diff --git a/challenge-245/zapwai/perl/ch-1.pl b/challenge-245/zapwai/perl/ch-1.pl new file mode 100644 index 0000000000..86820748f0 --- /dev/null +++ b/challenge-245/zapwai/perl/ch-1.pl @@ -0,0 +1,9 @@ +use v5.30; +my @lang = ('perl', 'c', 'python'); +my @pop = (2, 1, 3); +my @ans; +foreach my $i (0 .. $#pop) { + $ans[$pop[$i] - 1] = $lang[$i]; +} +say "Input : \@lang = @lang\n \t\@pop = @pop"; +say "Output: @ans"; diff --git a/challenge-245/zapwai/perl/ch-2.pl b/challenge-245/zapwai/perl/ch-2.pl new file mode 100644 index 0000000000..e2acbbfd13 --- /dev/null +++ b/challenge-245/zapwai/perl/ch-2.pl @@ -0,0 +1,29 @@ +use v5.30; +use Math::Combinatorics; +use Algorithm::Permute; +use List::Util; +my @digits = (8,1,9); +@digits = (8,6,7,1,0); +my @poss; + +for my $cnt (1 .. @digits) { + my $comb = Math::Combinatorics->new( + count => $cnt, + data => [@digits] + ); + while (my @combo = $comb->next_combination) { + my $p = Algorithm::Permute->new(\@combo); + while (my @perm = $p->next) { + my $num = join("", @perm); + push @poss, [@perm] if ($num % 3 == 0); + } + } +} + +my $max = -1; +for my $r (@poss) { + my $num = join("", @$r); + $max = $num if ($max < $num); +} +say "Input : \@digits = (" .join(", ",@digits).")"; +say "Output: $max"; -- cgit