diff options
| author | ntovar <tovar.nelo@gmail.com> | 2024-09-15 11:49:15 -0500 |
|---|---|---|
| committer | ntovar <tovar.nelo@gmail.com> | 2024-09-15 11:49:15 -0500 |
| commit | 9943b6972f2db86e651cfc5cc691641d6f44bc06 (patch) | |
| tree | bf6bf7be9274f05770e0b63cbcb95f19090943f4 | |
| parent | 92704d24e719f7514dcfc74a71fa03f1ea8f8f06 (diff) | |
| download | perlweeklychallenge-club-9943b6972f2db86e651cfc5cc691641d6f44bc06.tar.gz perlweeklychallenge-club-9943b6972f2db86e651cfc5cc691641d6f44bc06.tar.bz2 perlweeklychallenge-club-9943b6972f2db86e651cfc5cc691641d6f44bc06.zip | |
Challenge 286. Add Perl solutions. By Nelo Tovar
| -rw-r--r-- | challenge-286/nelo-tovar/perl/ch-1.pl | 38 | ||||
| -rw-r--r-- | challenge-286/nelo-tovar/perl/ch-2.pl | 46 |
2 files changed, 84 insertions, 0 deletions
diff --git a/challenge-286/nelo-tovar/perl/ch-1.pl b/challenge-286/nelo-tovar/perl/ch-1.pl new file mode 100644 index 0000000000..f9df4eeb21 --- /dev/null +++ b/challenge-286/nelo-tovar/perl/ch-1.pl @@ -0,0 +1,38 @@ +#!/usr/bin/env perl + +# The Weekly Challenge 286 - By Nelo Tovar +# +# https://theweeklychallenge.org/blog/perl-weekly-challenge-286/ +# +# Task 1 - Self Spammer +# + +use strict; +use warnings; +use v5.28; +use Data::Dump qw(dump); + +my $filename = $0; + +sub self_spammer { + my $filename = shift; + my @lines; + + open my $input, '<', $filename or die "Can not open $filename. !i\n"; + + while (my $line = <$input>) { + chomp $line; + push @lines, $line + } + + close $input; + + my @words = split /\s+/, $lines[rand scalar @lines]; + + return join ', ', @words +} + +my $ss = self_spammer $filename; + +say 'Output : ', $ss; +say ' '; diff --git a/challenge-286/nelo-tovar/perl/ch-2.pl b/challenge-286/nelo-tovar/perl/ch-2.pl new file mode 100644 index 0000000000..f3242ed9e9 --- /dev/null +++ b/challenge-286/nelo-tovar/perl/ch-2.pl @@ -0,0 +1,46 @@ +#!/usr/bin/env perl + +# The Weekly Challenge 286 - By Nelo Tovar +# +# https://theweeklychallenge.org/blog/perl-weekly-challenge-286/ +# +# Task 2 - Order Game +# + +use strict; +use warnings; +use v5.28; +use List::Util qw (min max); +use List::MoreUtils qw (minmax); +use Data::Dump qw(dump); + +my @examples = ( + [ 2, 1, 4, 5, 6, 3, 0, 2 ], + [ 0, 5, 3, 2 ], + [ 9, 2, 1, 4, 5, 6, 0, 7, 3, 1, 3, 5, 7, 9, 0, 8 ], +); + +sub order_game { + my @ints = shift->@*; + + while ($#ints > 1) { + my @temp; + + while ($#ints > 0) { + push @temp, min((shift @ints, shift @ints)); + push @temp, max((shift @ints, shift @ints)); + } + + @ints = @temp; + } + + return $ints[0] +} + +for my $elements (@examples) { + my $og = order_game $elements; + + say 'Input : @ints = ', dump(@$elements); + say 'Output : ', $og; + say ' '; +} |
