From cb6418d8fd91ba11f1a76c9c6f0d228cbbd1fd93 Mon Sep 17 00:00:00 2001 From: deadmarshal Date: Wed, 22 Nov 2023 12:22:19 -0500 Subject: TWC244 --- challenge-244/deadmarshal/blog.txt | 1 + challenge-244/deadmarshal/perl/ch-1.pl | 13 +++++++++++++ challenge-244/deadmarshal/perl/ch-2.pl | 17 +++++++++++++++++ challenge-244/deadmarshal/raku/ch-1.raku | 11 +++++++++++ challenge-244/deadmarshal/raku/ch-2.raku | 15 +++++++++++++++ 5 files changed, 57 insertions(+) create mode 100644 challenge-244/deadmarshal/blog.txt create mode 100644 challenge-244/deadmarshal/perl/ch-1.pl create mode 100644 challenge-244/deadmarshal/perl/ch-2.pl create mode 100644 challenge-244/deadmarshal/raku/ch-1.raku create mode 100644 challenge-244/deadmarshal/raku/ch-2.raku diff --git a/challenge-244/deadmarshal/blog.txt b/challenge-244/deadmarshal/blog.txt new file mode 100644 index 0000000000..8daf832fc0 --- /dev/null +++ b/challenge-244/deadmarshal/blog.txt @@ -0,0 +1 @@ +https://deadmarshal.blogspot.com/2023/11/twc244.html diff --git a/challenge-244/deadmarshal/perl/ch-1.pl b/challenge-244/deadmarshal/perl/ch-1.pl new file mode 100644 index 0000000000..42febe17b7 --- /dev/null +++ b/challenge-244/deadmarshal/perl/ch-1.pl @@ -0,0 +1,13 @@ +#!/usr/bin/env perl +use strict; +use warnings; + +sub count_smaller{ + my ($arr) = @_; + map{my $e = $_;scalar grep{$_ < $e}@$arr}@$arr; +} + +printf "(%s)\n",join ',',count_smaller([8,1,2,2,3]); +printf "(%s)\n",join ',',count_smaller([6,5,4,8]); +printf "(%s)\n",join ',',count_smaller([2,2,2]); + diff --git a/challenge-244/deadmarshal/perl/ch-2.pl b/challenge-244/deadmarshal/perl/ch-2.pl new file mode 100644 index 0000000000..c2f609200f --- /dev/null +++ b/challenge-244/deadmarshal/perl/ch-2.pl @@ -0,0 +1,17 @@ +#!/usr/bin/env perl +use strict; +use warnings; +use List::Util qw(min max); +use Algorithm::Combinatorics qw(subsets); + +sub group_hero{ + my $sum = 0; + my $it = subsets($_[0]); + while(my $c = $it->next){ + $sum += (max(@$c) ** 2) * min(@$c) if @$c; + } + $sum +} + +printf "%d\n", group_hero([2,1,4]); + diff --git a/challenge-244/deadmarshal/raku/ch-1.raku b/challenge-244/deadmarshal/raku/ch-1.raku new file mode 100644 index 0000000000..01f71c7968 --- /dev/null +++ b/challenge-244/deadmarshal/raku/ch-1.raku @@ -0,0 +1,11 @@ +#!/usr/bin/env raku + +sub count-smaller(@arr) +{ + @arr.map: {my $e = $_; (@arr.grep: {$_ < $e}).elems} +} + +say count-smaller([8,1,2,2,3]); +say count-smaller([6,5,4,8]); +say count-smaller([2,2,2]); + diff --git a/challenge-244/deadmarshal/raku/ch-2.raku b/challenge-244/deadmarshal/raku/ch-2.raku new file mode 100644 index 0000000000..08d963d1c4 --- /dev/null +++ b/challenge-244/deadmarshal/raku/ch-2.raku @@ -0,0 +1,15 @@ +#!/usr/bin/env raku + +sub group-hero(@arr) +{ + my $sum = 0; + for @arr.combinations + { + next unless .elems; + $sum += (.max ** 2) * .min; + } + $sum +} + +say group-hero([2,1,4]); + -- cgit