aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMohammad S Anwar <Mohammad.Anwar@yahoo.com>2021-06-06 23:33:15 +0100
committerGitHub <noreply@github.com>2021-06-06 23:33:15 +0100
commitcb411fa5a8daa4a756be32e84f863ba515190426 (patch)
tree424962a27f9f2c7539ba3c2a7fd5c3b2e8a4d31f
parent1db63a32ae58cef2ef5fc3fb7ae6034f61bd585b (diff)
parentf0eca371db5eb78603ab456291c08a77ce8afc48 (diff)
downloadperlweeklychallenge-club-cb411fa5a8daa4a756be32e84f863ba515190426.tar.gz
perlweeklychallenge-club-cb411fa5a8daa4a756be32e84f863ba515190426.tar.bz2
perlweeklychallenge-club-cb411fa5a8daa4a756be32e84f863ba515190426.zip
Merge pull request #4211 from mimosinnet/branch-for-challenge-115
Solutions for challenge 115
-rw-r--r--challenge-115/mimosinnet/raku/ch-1.raku46
-rw-r--r--challenge-115/mimosinnet/raku/ch-2.raku44
2 files changed, 90 insertions, 0 deletions
diff --git a/challenge-115/mimosinnet/raku/ch-1.raku b/challenge-115/mimosinnet/raku/ch-1.raku
new file mode 100644
index 0000000000..993cf9ab40
--- /dev/null
+++ b/challenge-115/mimosinnet/raku/ch-1.raku
@@ -0,0 +1,46 @@
+# https://perlweeklychallenge.org/blog/perl-weekly-challenge-115/
+
+# Got the insiration from Luca Ferrari and Ulrigh Rieke
+# Luca's solution is quite neat!
+
+sub challenge( @strings ) {
+ my @letter_first = @strings.map({ $_.comb.Array.shift });
+ my @letter_last = @strings.map({ $_.comb.Array.pop });
+ (@letter_first.sort ~~ @letter_last.sort).Numeric;
+}
+
+multi sub MAIN( @strings ) {
+ say 'Input: @S = ',@strings;
+ say 'Output: ',challenge(@strings),"\n";
+}
+
+multi sub MAIN( 'challenge' ) {
+
+ my @challenge = (
+ <abc dea cd>,
+ <ade cbd fgh>
+ );
+
+ for @challenge -> @a {
+ MAIN(@a);
+ }
+}
+
+multi sub MAIN( 'test' ) is hidden-from-USAGE {
+ use Test;
+
+ my @test = [
+ <abc dea cd>, 1,
+ <ade cbd fgh>, 0,
+ <abc dea fgh hif>, 0,
+ <abc dec cfa cgd>, 1,
+ <abc def cd>, 0
+ ];
+
+ for @test -> @a, $b {
+ is challenge(@a), $b;
+ }
+
+ done-testing;
+
+}
diff --git a/challenge-115/mimosinnet/raku/ch-2.raku b/challenge-115/mimosinnet/raku/ch-2.raku
new file mode 100644
index 0000000000..66e9e438be
--- /dev/null
+++ b/challenge-115/mimosinnet/raku/ch-2.raku
@@ -0,0 +1,44 @@
+# https://perlweeklychallenge.org/blog/perl-weekly-challenge-115/
+
+# Find the lowest multiple of 2 and sort the rest of numbers
+sub challenge( @numbers ) {
+ my $last_number = @numbers.sort.first({ $_ %% 2 });
+ my @other_numbers = @numbers.grep(none $last_number).sort({ $^b leg $^a });
+ @other_numbers.push: $last_number;
+ return @other_numbers.join;
+}
+
+multi sub MAIN( @numbers ) {
+ say 'Input: @N = ',@numbers;
+ say 'Output: ',challenge(@numbers),"\n";
+}
+
+multi sub MAIN( 'challenge' ) {
+
+ my @challenge = (
+ (1, 0, 2, 6),
+ (1, 4, 2, 8),
+ (4, 1, 7, 6)
+ );
+
+ for @challenge -> @a {
+ MAIN(@a);
+ }
+}
+
+multi sub MAIN( 'test' ) is hidden-from-USAGE {
+ use Test;
+
+ my @test = (
+ (1, 0, 2, 6), 6210,
+ (1, 4, 2, 8), 8412,
+ (4, 1, 7, 6), 7614
+ );
+
+ for @test -> @a, $b {
+ is challenge(@a), $b;
+ }
+
+ done-testing;
+
+}