aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMohammad S Anwar <Mohammad.Anwar@yahoo.com>2022-11-07 13:23:09 +0000
committerGitHub <noreply@github.com>2022-11-07 13:23:09 +0000
commitdbcabe5c62b3c3d305e4010b6da68d892d23546a (patch)
tree1039cd2e257d6ed18a2bf57b3894a11a5f5dd6f9
parent74cc850f3e4d5523ec357f0c8eb3852a1cd5d647 (diff)
parentdd8bed8588b017b5217e3d97e37b174101c48d50 (diff)
downloadperlweeklychallenge-club-dbcabe5c62b3c3d305e4010b6da68d892d23546a.tar.gz
perlweeklychallenge-club-dbcabe5c62b3c3d305e4010b6da68d892d23546a.tar.bz2
perlweeklychallenge-club-dbcabe5c62b3c3d305e4010b6da68d892d23546a.zip
Merge pull request #7045 from jaldhar/challenge-189
Challenge 189 by Jaldhar H. Vyas.
-rw-r--r--challenge-189/jaldhar-h-vyas/blog.txt1
-rwxr-xr-xchallenge-189/jaldhar-h-vyas/perl/ch-1.pl33
-rwxr-xr-xchallenge-189/jaldhar-h-vyas/perl/ch-2.pl47
-rwxr-xr-xchallenge-189/jaldhar-h-vyas/raku/ch-1.raku16
-rwxr-xr-xchallenge-189/jaldhar-h-vyas/raku/ch-2.raku22
5 files changed, 119 insertions, 0 deletions
diff --git a/challenge-189/jaldhar-h-vyas/blog.txt b/challenge-189/jaldhar-h-vyas/blog.txt
new file mode 100644
index 0000000000..b7fbb67ac5
--- /dev/null
+++ b/challenge-189/jaldhar-h-vyas/blog.txt
@@ -0,0 +1 @@
+https://www.braincells.com/perl/2022/11/perl_weekly_challenge_week_189.html \ No newline at end of file
diff --git a/challenge-189/jaldhar-h-vyas/perl/ch-1.pl b/challenge-189/jaldhar-h-vyas/perl/ch-1.pl
new file mode 100755
index 0000000000..6d223d91e3
--- /dev/null
+++ b/challenge-189/jaldhar-h-vyas/perl/ch-1.pl
@@ -0,0 +1,33 @@
+#!/usr/bin/perl
+use 5.030;
+use warnings;
+use English;
+
+
+sub usage {
+print<<"-USAGE-";
+Usage:
+ $PROGRAM_NAME <target> [<array> ...]
+
+ <target> target character
+ [<array> ...] array of characters
+-USAGE-
+ exit(0);
+}
+
+unless (@ARGV) {
+ usage;
+}
+
+my $target = shift;
+my @array = @ARGV;
+my $result = $target;
+
+for my $char (sort @array) {
+ if ($char gt $target) {
+ $result = $char;
+ last;
+ }
+}
+
+say $result;
diff --git a/challenge-189/jaldhar-h-vyas/perl/ch-2.pl b/challenge-189/jaldhar-h-vyas/perl/ch-2.pl
new file mode 100755
index 0000000000..60d45abe08
--- /dev/null
+++ b/challenge-189/jaldhar-h-vyas/perl/ch-2.pl
@@ -0,0 +1,47 @@
+#!/usr/bin/perl
+use 5.030;
+use warnings;
+use English;
+
+
+sub usage {
+print<<"-USAGE-";
+Usage:
+ $PROGRAM_NAME [<array> ...]
+
+ [<array> ...] array of integers
+-USAGE-
+ exit(0);
+}
+
+if (scalar @ARGV < 2) {
+ usage;
+}
+
+my @array = @ARGV;
+my %degrees;
+
+for my $n (@array) {
+ $degrees{$n}++;
+}
+
+my $degree = $degrees{(sort { $degrees{$b} <=> $degrees{$a} } keys %degrees)[0] };
+
+my @results;
+for my $key (grep { $degrees{$_} == $degree } keys %degrees) {
+ my $start = -1;
+ my $end = -1;
+ for my $i (0 .. scalar @array - 1) {
+ if ($array[$i] == $key) {
+ if ($start == -1) {
+ $start = $i;
+ } else {
+ $end = $i;
+ }
+ }
+ }
+ push @results, [ @array[$start .. $end] ];
+}
+
+my @sorted = sort { @{$a} <=> @{$b} } @results;
+say q{(} . (join q{, }, @{ shift @sorted }) . q{)}; \ No newline at end of file
diff --git a/challenge-189/jaldhar-h-vyas/raku/ch-1.raku b/challenge-189/jaldhar-h-vyas/raku/ch-1.raku
new file mode 100755
index 0000000000..7a21329332
--- /dev/null
+++ b/challenge-189/jaldhar-h-vyas/raku/ch-1.raku
@@ -0,0 +1,16 @@
+#!/usr/bin/raku
+
+sub MAIN(
+ $target, #= target character
+ *@array #= array of characters
+) {
+ my $result = $target;
+ for @array.sort -> $char {
+ if ($char gt $target) {
+ $result = $char;
+ last;
+ }
+ }
+
+ say $result;
+} \ No newline at end of file
diff --git a/challenge-189/jaldhar-h-vyas/raku/ch-2.raku b/challenge-189/jaldhar-h-vyas/raku/ch-2.raku
new file mode 100755
index 0000000000..ae40a7ba9e
--- /dev/null
+++ b/challenge-189/jaldhar-h-vyas/raku/ch-2.raku
@@ -0,0 +1,22 @@
+#!/usr/bin/raku
+
+sub MAIN (
+ *@array where { @array.elems > 1; } #= array of Integers
+) {
+ my %degrees;
+
+ for @array -> $n {
+ %degrees{$n}++;
+ }
+
+ my $degree = %degrees{%degrees.keys.sort({ %degrees{$^b} <=> %degrees{$^a} }).first};
+
+ my @results;
+ for %degrees.keys.grep({ %degrees{$_} == $degree }) -> $key {
+ my $start = @array.first($key, :k);
+ my $end = @array.first($key, :k, :end);
+ @results.push(@array[$start .. $end]);
+ }
+
+ say q{(} ~ @results.sort({$^a.elems <=> $^b.elems }).first.join(q{, }) ~ q{)};
+} \ No newline at end of file