diff options
| author | Mohammad Sajid Anwar <Mohammad.Anwar@yahoo.com> | 2024-12-24 12:55:41 +0000 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-12-24 12:55:41 +0000 |
| commit | bccae08dc1de6129f4fa12834cba48b3beed4c2b (patch) | |
| tree | b1dc766731bb14336d2adebddab78fadbf99c70b | |
| parent | 2a352a813f3814e9e79781f8156cbcd8abf1630b (diff) | |
| parent | 993d837025d86e30aa0e6bee186b60fe2ad46c75 (diff) | |
| download | perlweeklychallenge-club-bccae08dc1de6129f4fa12834cba48b3beed4c2b.tar.gz perlweeklychallenge-club-bccae08dc1de6129f4fa12834cba48b3beed4c2b.tar.bz2 perlweeklychallenge-club-bccae08dc1de6129f4fa12834cba48b3beed4c2b.zip | |
Merge pull request #11351 from wambash/challenge-week-301
solutions week 301
| -rw-r--r-- | challenge-301/wambash/raku/ch-1.raku | 21 | ||||
| -rw-r--r-- | challenge-301/wambash/raku/ch-2.raku | 26 |
2 files changed, 47 insertions, 0 deletions
diff --git a/challenge-301/wambash/raku/ch-1.raku b/challenge-301/wambash/raku/ch-1.raku new file mode 100644 index 0000000000..0a50a9f7bf --- /dev/null +++ b/challenge-301/wambash/raku/ch-1.raku @@ -0,0 +1,21 @@ +#!/usr/bin/env raku + +sub largest-number (+@ints) { + my $max-length = @ints.map(*.chars).max; + + @ints + andthen .sort: { $_ x $max-length }\ + andthen .reverse + andthen [~] $_ +} + +multi MAIN (Bool :test($)!) { + use Test; + is largest-number(20, 3),320; + is largest-number(3, 30, 34, 5, 9),9534330; + done-testing; +} + +multi MAIN (+@ints) { + say largest-number @ints +} diff --git a/challenge-301/wambash/raku/ch-2.raku b/challenge-301/wambash/raku/ch-2.raku new file mode 100644 index 0000000000..24151021db --- /dev/null +++ b/challenge-301/wambash/raku/ch-2.raku @@ -0,0 +1,26 @@ +#!/usr/bin/env raku + +sub hamming-distance (+@ints) { + my $elems = @ints.elems; + + @ints + andthen .map: { .polymod: 2 xx * }\ + andthen roundrobin $_ + andthen .map: *.sum + andthen .map: { $_ * ($elems - $_) }\ + andthen .sum +} + +multi MAIN (Bool :test($)!) { + use Test; + is hamming-distance(4,14,2),6; + is hamming-distance(4,14,4),4; + subtest { + is hamming-distance(^(2**$_)), $_ * 4**($_-1) for ^16; + } + done-testing; +} + +multi MAIN (+@ints) { + say hamming-distance @ints +} |
