diff options
| author | Mohammad S Anwar <Mohammad.Anwar@yahoo.com> | 2020-03-08 22:27:48 +0000 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2020-03-08 22:27:48 +0000 |
| commit | a7d39b7313ff4b31e9124dd5e9f05c02d0d7504d (patch) | |
| tree | f43f78edf21baf0708c4861cf75b949e4d749c45 /challenge-050 | |
| parent | fa43d2bec1b2d677d6842349c7d8f2fd050b5514 (diff) | |
| parent | 29db5b9bf11041662abdbf0f1b0b75744944873b (diff) | |
| download | perlweeklychallenge-club-a7d39b7313ff4b31e9124dd5e9f05c02d0d7504d.tar.gz perlweeklychallenge-club-a7d39b7313ff4b31e9124dd5e9f05c02d0d7504d.tar.bz2 perlweeklychallenge-club-a7d39b7313ff4b31e9124dd5e9f05c02d0d7504d.zip | |
Merge pull request #1371 from jaldhar/challenge-050
Challenge 50 by Jaldhar H. Vyas
Diffstat (limited to 'challenge-050')
| -rw-r--r-- | challenge-050/jaldhar-h-vyas/blog.txt | 1 | ||||
| -rwxr-xr-x | challenge-050/jaldhar-h-vyas/perl/ch-1.pl | 28 | ||||
| -rwxr-xr-x | challenge-050/jaldhar-h-vyas/perl/ch-2.pl | 13 | ||||
| -rwxr-xr-x | challenge-050/jaldhar-h-vyas/raku/ch-1.p6 | 26 | ||||
| -rwxr-xr-x | challenge-050/jaldhar-h-vyas/raku/ch-2.p6 | 12 |
5 files changed, 80 insertions, 0 deletions
diff --git a/challenge-050/jaldhar-h-vyas/blog.txt b/challenge-050/jaldhar-h-vyas/blog.txt new file mode 100644 index 0000000000..c26ed46fe7 --- /dev/null +++ b/challenge-050/jaldhar-h-vyas/blog.txt @@ -0,0 +1 @@ +https://www.braincells.com/perl/2020/03/perl_weekly_challenge_week_50.html diff --git a/challenge-050/jaldhar-h-vyas/perl/ch-1.pl b/challenge-050/jaldhar-h-vyas/perl/ch-1.pl new file mode 100755 index 0000000000..c617b4aeea --- /dev/null +++ b/challenge-050/jaldhar-h-vyas/perl/ch-1.pl @@ -0,0 +1,28 @@ +#!/usr/bin/perl +use warnings; +use strict; +use 5.010; + +my @intervals; +for my $arg (@ARGV) { + $arg =~ /\[ (\d+) , (\d+) \] ,?/gmx; + push @intervals, [$1, $2]; +} + +my $size = scalar @intervals; +my @merged; + +for (my $i = 0; $i < $size - 1; $i++) { + my $start = $intervals[$i]->[0]; + my $end = $intervals[$i]->[1]; + + while ($i < $size - 1 && + $end >= $intervals[$i + 1]->[0] && $end <= $intervals[$i + 1]->[1]) { + $end = $intervals[$i + 1]->[1]; + $i++; + } + + push @merged, [$start, $end]; +} + +say join ', ', map { "[$_->[0],$_->[1]]" } @merged; diff --git a/challenge-050/jaldhar-h-vyas/perl/ch-2.pl b/challenge-050/jaldhar-h-vyas/perl/ch-2.pl new file mode 100755 index 0000000000..854f1ec5bf --- /dev/null +++ b/challenge-050/jaldhar-h-vyas/perl/ch-2.pl @@ -0,0 +1,13 @@ +#!/usr/bin/perl +use warnings; +use strict; +use 5.010; + +my @L = sort @ARGV; +my $size = scalar @L; + +for (my $n = 0; $n < $size; $n++) { + if ($L[$n] == $size - $n - 1) { + say $L[$n]; + } +}
\ No newline at end of file diff --git a/challenge-050/jaldhar-h-vyas/raku/ch-1.p6 b/challenge-050/jaldhar-h-vyas/raku/ch-1.p6 new file mode 100755 index 0000000000..a368315136 --- /dev/null +++ b/challenge-050/jaldhar-h-vyas/raku/ch-1.p6 @@ -0,0 +1,26 @@ +#!/usr/bin/perl6 + +multi sub MAIN(*@ARGS) { + my @intervals; + + for @*ARGS -> $arg { + $arg ~~ / \[ $<min> = (\d+) \, $<max> = (\d+) \] \,? /; + @intervals.push($/<min> .. $/<max>); + } + my $size = @intervals.elems; + my @merged; + + loop (my $i = 0; $i < $size - 1; $i++) { + my $start = @intervals[$i].min(); + my $end = @intervals[$i].max(); + + while $i < $size - 1 && $end ~~ @intervals[$i + 1] { + $end = @intervals[$i + 1].max(); + $i++; + } + + push @merged, $start .. $end; + } + + @merged.map({ "[$_.min(),$_.max()]" }).join(', ').say; +}
\ No newline at end of file diff --git a/challenge-050/jaldhar-h-vyas/raku/ch-2.p6 b/challenge-050/jaldhar-h-vyas/raku/ch-2.p6 new file mode 100755 index 0000000000..7a0e21f66c --- /dev/null +++ b/challenge-050/jaldhar-h-vyas/raku/ch-2.p6 @@ -0,0 +1,12 @@ +#!/usr/bin/perl6 + +multi sub MAIN(*@ARGS) { + my @L = @*ARGS.sort; + my $size = @L.elems; + + loop (my $n = 0; $n < $size; $n++) { + if (@L[$n] == $size - $n - 1) { + say @L[$n]; + } + } +}
\ No newline at end of file |
