diff options
| author | Mohammad Sajid Anwar <Mohammad.Anwar@yahoo.com> | 2025-04-15 18:47:11 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-04-15 18:47:11 +0100 |
| commit | 86e48981d1b0a05b91053bf39f62bd0cc49d3773 (patch) | |
| tree | 512b71611f36e8e76097851d966ccc59e293d7c2 | |
| parent | 58965906225bb113cda376dcecd749f01e0683c7 (diff) | |
| parent | 3a976b80a271bf32b482cd59461005a50cf569fa (diff) | |
| download | perlweeklychallenge-club-86e48981d1b0a05b91053bf39f62bd0cc49d3773.tar.gz perlweeklychallenge-club-86e48981d1b0a05b91053bf39f62bd0cc49d3773.tar.bz2 perlweeklychallenge-club-86e48981d1b0a05b91053bf39f62bd0cc49d3773.zip | |
Merge pull request #11883 from jaldhar/challenge-314
Challenge 314 by Jaldhar H. Vyas.
| -rw-r--r-- | challenge-314/jaldhar-h-vyas/blog.txt | 1 | ||||
| -rwxr-xr-x | challenge-314/jaldhar-h-vyas/perl/ch-1.pl | 28 | ||||
| -rwxr-xr-x | challenge-314/jaldhar-h-vyas/perl/ch-2.pl | 13 | ||||
| -rwxr-xr-x | challenge-314/jaldhar-h-vyas/raku/ch-1.raku | 30 | ||||
| -rwxr-xr-x | challenge-314/jaldhar-h-vyas/raku/ch-2.raku | 11 |
5 files changed, 83 insertions, 0 deletions
diff --git a/challenge-314/jaldhar-h-vyas/blog.txt b/challenge-314/jaldhar-h-vyas/blog.txt new file mode 100644 index 0000000000..c341ae33d8 --- /dev/null +++ b/challenge-314/jaldhar-h-vyas/blog.txt @@ -0,0 +1 @@ +https://www.braincells.com/perl/2025/04/perl_weekly_challenge_week_314.html diff --git a/challenge-314/jaldhar-h-vyas/perl/ch-1.pl b/challenge-314/jaldhar-h-vyas/perl/ch-1.pl new file mode 100755 index 0000000000..16bea686b7 --- /dev/null +++ b/challenge-314/jaldhar-h-vyas/perl/ch-1.pl @@ -0,0 +1,28 @@ +#!/usr/bin/perl +use v5.38; +use builtin qw/ true /; +no warnings qw/ experimental::builtin /; + +my ($s1, $s2, $s3) = @ARGV; +my $ops = 0; +my @strs = ($s1, $s2, $s3); + +while (true) { + if (grep { length($_) == 0 } @strs) { + say -1; + last; + } + + if ($strs[0] eq $strs[1] && $strs[1] eq $strs[2]) { + say $ops; + last; + } + + my $maxlen = (sort { $b <=> $a } map { length($_) } @strs)[0]; + for my $i (keys @strs) { + if (length($strs[$i]) == $maxlen) { + $strs[$i] = substr($strs[$i], 0, -1); + $ops++; + } + } +} diff --git a/challenge-314/jaldhar-h-vyas/perl/ch-2.pl b/challenge-314/jaldhar-h-vyas/perl/ch-2.pl new file mode 100755 index 0000000000..f8db48dd6f --- /dev/null +++ b/challenge-314/jaldhar-h-vyas/perl/ch-2.pl @@ -0,0 +1,13 @@ +#!/usr/bin/perl +use v5.38; + +my @list = map { [split //, $_] } @ARGV; +my @cols; + +for my $row (keys @list) { + for my $col (keys @{$list[$row]}) { + $cols[$col] .= $list[$row]->[$col]; + } +} + +say scalar grep { $_ ne join q{}, sort split //, $_ } @cols; diff --git a/challenge-314/jaldhar-h-vyas/raku/ch-1.raku b/challenge-314/jaldhar-h-vyas/raku/ch-1.raku new file mode 100755 index 0000000000..f1419c2eba --- /dev/null +++ b/challenge-314/jaldhar-h-vyas/raku/ch-1.raku @@ -0,0 +1,30 @@ +#!/usr/bin/raku + +sub MAIN( + $s1, + $s2, + $s3 +) { + my $ops = 0; + my @strs = ($s1, $s2, $s3); + + loop { + if @strs.map({ $_.chars }).any == 0 { + say -1; + last; + } + + if [eq] @strs { + say $ops; + last; + } + + my $maxlen = @strs.map({ $_.chars }).max; + for @strs.keys -> $i { + if @strs[$i].chars == $maxlen { + @strs[$i] = @strs[$i].substr(0, *-1); + $ops++; + } + } + } +}
\ No newline at end of file diff --git a/challenge-314/jaldhar-h-vyas/raku/ch-2.raku b/challenge-314/jaldhar-h-vyas/raku/ch-2.raku new file mode 100755 index 0000000000..ce0565e183 --- /dev/null +++ b/challenge-314/jaldhar-h-vyas/raku/ch-2.raku @@ -0,0 +1,11 @@ +#!/usr/bin/raku + +sub MAIN( + *@list +) { + my @table = @list.map({ $_.comb.List }); + say @table[0] + .keys + .grep({ @table[*;$_].join ne @table[*;$_].sort.join }) + .elems; +} |
