aboutsummaryrefslogtreecommitdiff
path: root/challenge-050
diff options
context:
space:
mode:
authorMohammad S Anwar <Mohammad.Anwar@yahoo.com>2020-03-08 22:27:48 +0000
committerGitHub <noreply@github.com>2020-03-08 22:27:48 +0000
commita7d39b7313ff4b31e9124dd5e9f05c02d0d7504d (patch)
treef43f78edf21baf0708c4861cf75b949e4d749c45 /challenge-050
parentfa43d2bec1b2d677d6842349c7d8f2fd050b5514 (diff)
parent29db5b9bf11041662abdbf0f1b0b75744944873b (diff)
downloadperlweeklychallenge-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.txt1
-rwxr-xr-xchallenge-050/jaldhar-h-vyas/perl/ch-1.pl28
-rwxr-xr-xchallenge-050/jaldhar-h-vyas/perl/ch-2.pl13
-rwxr-xr-xchallenge-050/jaldhar-h-vyas/raku/ch-1.p626
-rwxr-xr-xchallenge-050/jaldhar-h-vyas/raku/ch-2.p612
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