diff options
| author | deadmarshal <adeadmarshal@gmail.com> | 2023-09-14 21:52:47 +0330 |
|---|---|---|
| committer | deadmarshal <adeadmarshal@gmail.com> | 2023-09-14 21:52:47 +0330 |
| commit | fb55e01eb26fa71188024303b387794e4d3b8f75 (patch) | |
| tree | 8c802d97513e4af39d69d0c106f684d41f6847ef /challenge-234 | |
| parent | 3f85224aa3a84d4fb99755152cba5176cf49b795 (diff) | |
| download | perlweeklychallenge-club-fb55e01eb26fa71188024303b387794e4d3b8f75.tar.gz perlweeklychallenge-club-fb55e01eb26fa71188024303b387794e4d3b8f75.tar.bz2 perlweeklychallenge-club-fb55e01eb26fa71188024303b387794e4d3b8f75.zip | |
TWC234
Diffstat (limited to 'challenge-234')
| -rw-r--r-- | challenge-234/deadmarshal/blog.txt | 1 | ||||
| -rw-r--r-- | challenge-234/deadmarshal/perl/ch-1.pl | 20 | ||||
| -rw-r--r-- | challenge-234/deadmarshal/perl/ch-2.pl | 17 | ||||
| -rw-r--r-- | challenge-234/deadmarshal/raku/ch-1.raku | 17 | ||||
| -rw-r--r-- | challenge-234/deadmarshal/raku/ch-2.raku | 14 |
5 files changed, 69 insertions, 0 deletions
diff --git a/challenge-234/deadmarshal/blog.txt b/challenge-234/deadmarshal/blog.txt new file mode 100644 index 0000000000..014c04b80d --- /dev/null +++ b/challenge-234/deadmarshal/blog.txt @@ -0,0 +1 @@ +https://deadmarshal.blogspot.com/2023/09/twc234.html diff --git a/challenge-234/deadmarshal/perl/ch-1.pl b/challenge-234/deadmarshal/perl/ch-1.pl new file mode 100644 index 0000000000..e2bb34d2a6 --- /dev/null +++ b/challenge-234/deadmarshal/perl/ch-1.pl @@ -0,0 +1,20 @@ +#!/usr/bin/env perl +use strict; +use warnings; +use List::Util qw(min); + +sub common_characters{ + my @letters; + map{my %h; $h{$_}++ for split ''; push @letters,\%h} @{$_[0]}; + map{my $letter = $_; + my $rep = min map{$letters[$_]{$letter} // 0} 0..$#letters; + ($letter) x $rep + } keys %{$letters[0]}; +} + +printf "(%s)\n", join ',', + common_characters([qw/java javascript julia/]); +printf "(%s)\n", join ',', + common_characters([qw/bella label roller/]); +printf "(%s)\n", join ',', common_characters([qw/cool lock cook/]); + diff --git a/challenge-234/deadmarshal/perl/ch-2.pl b/challenge-234/deadmarshal/perl/ch-2.pl new file mode 100644 index 0000000000..d95f4d6920 --- /dev/null +++ b/challenge-234/deadmarshal/perl/ch-2.pl @@ -0,0 +1,17 @@ +#!/usr/bin/env perl +use strict; +use warnings; +use List::Util qw(sum0 product); +use Algorithm::Combinatorics qw(combinations); + +sub unequal_triplets{ + my %h; + $h{$_}++ foreach @{$_[0]}; + my @keys = keys %h; + @keys < 3 ? 0 : sum0 map{product @h{@$_}} combinations(\@keys,3); +} + +printf "%d\n", unequal_triplets([4,4,2,4,3]); +printf "%d\n", unequal_triplets([1,1,1,1,1]); +printf "%d\n", unequal_triplets([4,7,1,10,7,4,1,1]); + diff --git a/challenge-234/deadmarshal/raku/ch-1.raku b/challenge-234/deadmarshal/raku/ch-1.raku new file mode 100644 index 0000000000..a90243b6e9 --- /dev/null +++ b/challenge-234/deadmarshal/raku/ch-1.raku @@ -0,0 +1,17 @@ +#!/usr/bin/env raku + +sub common-characters(@arr) +{ + my @letters; + @arr.map({my %h; %h{$_}++ for $_.comb; @letters.push(%h)}); + @letters[0].keys.map({ + my $letter = $_; + my $rep = (0..@letters.end).map({@letters[$_]{$letter} // 0}).min; + $letter x $rep +}); +} + +say common-characters(["java","javascript","julia"]); +say common-characters(["bella","label","roller"]); +say common-characters(["cool","lock","cook"]); + diff --git a/challenge-234/deadmarshal/raku/ch-2.raku b/challenge-234/deadmarshal/raku/ch-2.raku new file mode 100644 index 0000000000..dcac8c3661 --- /dev/null +++ b/challenge-234/deadmarshal/raku/ch-2.raku @@ -0,0 +1,14 @@ +#!/usr/bin/env raku + +sub unequal-triplets(@arr) +{ + my %h; + %h{$_}++ for @arr; + my @keys = %h.keys; + @keys < 3 ?? 0 !! @keys.combinations(3).map({[*] %h{$_}}).sum; +} + +say unequal-triplets([4,4,2,4,3]); +say unequal-triplets([1,1,1,1,1]); +say unequal-triplets([4,7,1,10,7,4,1,1]); + |
