aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMohammad Sajid Anwar <Mohammad.Anwar@yahoo.com>2023-11-27 05:00:14 +0000
committerGitHub <noreply@github.com>2023-11-27 05:00:14 +0000
commit0e0fc9fd8223454bef9909770bed76c879321e3f (patch)
tree8adabbf106ff5cb9274fbbbe51bb4c520eb54c65
parent81264f2948efd3a7b10bdb4d32bcf700981ebdd6 (diff)
parent0fcf4a25fedf17257a7b41f8d8a9c84a66be3e92 (diff)
downloadperlweeklychallenge-club-0e0fc9fd8223454bef9909770bed76c879321e3f.tar.gz
perlweeklychallenge-club-0e0fc9fd8223454bef9909770bed76c879321e3f.tar.bz2
perlweeklychallenge-club-0e0fc9fd8223454bef9909770bed76c879321e3f.zip
Merge pull request #9145 from jaldhar/challenge-244
Challenge 244 by Jaldhar H. Vyas.
-rw-r--r--challenge-244/jaldhar-h-vyas/blog.txt1
-rwxr-xr-xchallenge-244/jaldhar-h-vyas/perl/ch-1.pl16
-rwxr-xr-xchallenge-244/jaldhar-h-vyas/perl/ch-2.pl51
-rwxr-xr-xchallenge-244/jaldhar-h-vyas/raku/ch-1.raku13
-rwxr-xr-xchallenge-244/jaldhar-h-vyas/raku/ch-2.sh3
5 files changed, 84 insertions, 0 deletions
diff --git a/challenge-244/jaldhar-h-vyas/blog.txt b/challenge-244/jaldhar-h-vyas/blog.txt
new file mode 100644
index 0000000000..4073d03552
--- /dev/null
+++ b/challenge-244/jaldhar-h-vyas/blog.txt
@@ -0,0 +1 @@
+https://www.braincells.com/perl/2023/11/perl_weekly_challenge_week_244.html
diff --git a/challenge-244/jaldhar-h-vyas/perl/ch-1.pl b/challenge-244/jaldhar-h-vyas/perl/ch-1.pl
new file mode 100755
index 0000000000..ca50a76536
--- /dev/null
+++ b/challenge-244/jaldhar-h-vyas/perl/ch-1.pl
@@ -0,0 +1,16 @@
+#!/usr/bin/perl
+use 5.030;
+use warnings;
+
+my @int = @ARGV;
+my %s;
+my $index = 0;
+
+for my $elem (sort { $a <=> $b } @int) {
+ unless (exists $s{$elem}) {
+ $s{$elem} = $index;
+ }
+ $index++;
+}
+
+say q{(}, (join q{, }, map { $s{$_} } @int), q{)};
diff --git a/challenge-244/jaldhar-h-vyas/perl/ch-2.pl b/challenge-244/jaldhar-h-vyas/perl/ch-2.pl
new file mode 100755
index 0000000000..06a3d92b35
--- /dev/null
+++ b/challenge-244/jaldhar-h-vyas/perl/ch-2.pl
@@ -0,0 +1,51 @@
+#!/usr/bin/perl
+use 5.030;
+use warnings;
+
+sub combinations {
+ my @list = @{$_[0]};
+ my $length = $_[1];
+
+ if ($length <= 1) {
+ return map [$_], @list;
+ }
+
+ my @combos;
+
+ for (my $i = 0; $i + $length <= scalar @list; $i++) {
+ my $val = $list[$i];
+ my @rest = @list[$i + 1 .. $#list];
+ for my $c (combinations(\@rest, $length - 1)) {
+ push @combos, [$val, @{$c}] ;
+ }
+ }
+
+ return @combos;
+}
+
+sub power {
+ my ($arr) = @_;
+ my @sorted = sort { $a <=> $b } @{$arr};
+
+ return $sorted[-1] ** 2 * $sorted[0];
+}
+
+sub sum {
+ my ($arr) = @_;
+ my $total = 0;
+
+ for my $elem (@{$arr}) {
+ $total += $elem;
+ }
+
+ return $total;
+}
+
+my @nums = @ARGV;
+my $total = 0;
+
+for my $i (1 .. scalar @nums) {
+ $total += sum([ map { power($_) } combinations(\@nums, $i) ]);
+}
+
+say $total;
diff --git a/challenge-244/jaldhar-h-vyas/raku/ch-1.raku b/challenge-244/jaldhar-h-vyas/raku/ch-1.raku
new file mode 100755
index 0000000000..1de96d9784
--- /dev/null
+++ b/challenge-244/jaldhar-h-vyas/raku/ch-1.raku
@@ -0,0 +1,13 @@
+#!/usr/bin/raku
+
+sub MAIN(
+ *@int
+) {
+ my %s;
+ for @int.sort Z=> @int.keys -> $p {
+ unless %s{$p.key}:exists {
+ %s{$p.key} = $p.value;
+ }
+ }
+ say q{(}, @int.map({ %s{$_} }).join(q{, }), q{)};
+} \ No newline at end of file
diff --git a/challenge-244/jaldhar-h-vyas/raku/ch-2.sh b/challenge-244/jaldhar-h-vyas/raku/ch-2.sh
new file mode 100755
index 0000000000..0ad83f80c1
--- /dev/null
+++ b/challenge-244/jaldhar-h-vyas/raku/ch-2.sh
@@ -0,0 +1,3 @@
+#!/bin/sh
+
+raku -e '@*ARGS.combinations(1..@*ARGS.elems).map({$_.max**2*$_.min}).sum.say' "$@"