diff options
| author | Mohammad Sajid Anwar <Mohammad.Anwar@yahoo.com> | 2023-11-27 05:00:14 +0000 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-11-27 05:00:14 +0000 |
| commit | 0e0fc9fd8223454bef9909770bed76c879321e3f (patch) | |
| tree | 8adabbf106ff5cb9274fbbbe51bb4c520eb54c65 | |
| parent | 81264f2948efd3a7b10bdb4d32bcf700981ebdd6 (diff) | |
| parent | 0fcf4a25fedf17257a7b41f8d8a9c84a66be3e92 (diff) | |
| download | perlweeklychallenge-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.txt | 1 | ||||
| -rwxr-xr-x | challenge-244/jaldhar-h-vyas/perl/ch-1.pl | 16 | ||||
| -rwxr-xr-x | challenge-244/jaldhar-h-vyas/perl/ch-2.pl | 51 | ||||
| -rwxr-xr-x | challenge-244/jaldhar-h-vyas/raku/ch-1.raku | 13 | ||||
| -rwxr-xr-x | challenge-244/jaldhar-h-vyas/raku/ch-2.sh | 3 |
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' "$@" |
