aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMohammad S Anwar <Mohammad.Anwar@yahoo.com>2020-04-07 15:34:36 +0100
committerGitHub <noreply@github.com>2020-04-07 15:34:36 +0100
commit2c8cf922ad9930990af4a470b465476e922558e5 (patch)
treebc9f4bb86430d4c6209338b2751b3c321480eb3c
parent53bcfb01fec3c9a4a253ce14bb620a890012fb2d (diff)
parent444ddf72157f648c8e6b04786e2700df6b8738b9 (diff)
downloadperlweeklychallenge-club-2c8cf922ad9930990af4a470b465476e922558e5.tar.gz
perlweeklychallenge-club-2c8cf922ad9930990af4a470b465476e922558e5.tar.bz2
perlweeklychallenge-club-2c8cf922ad9930990af4a470b465476e922558e5.zip
Merge pull request #1532 from andemark/branch-for-challenge-055
Challenge 55 Solutions
-rw-r--r--challenge-055/mark-anderson/raku/ch-1.p610
-rw-r--r--challenge-055/mark-anderson/raku/ch-2.p611
2 files changed, 14 insertions, 7 deletions
diff --git a/challenge-055/mark-anderson/raku/ch-1.p6 b/challenge-055/mark-anderson/raku/ch-1.p6
index e7417ec445..0f2870dc48 100644
--- a/challenge-055/mark-anderson/raku/ch-1.p6
+++ b/challenge-055/mark-anderson/raku/ch-1.p6
@@ -1,6 +1,4 @@
-#!/usr/bin/env raku
-
-sub MAIN(Str $binary) {
+sub MAIN(Str $binary where $binary ~~ /<[01]>/) {
my @LR = (0 .. $binary.chars-1).combinations: 2;
for (0 .. $binary.chars-1) -> $n {
@@ -17,10 +15,8 @@ sub MAIN(Str $binary) {
$middle = (("0b" ~ $middle).Int +^ ("0b" ~ "1" x $middle.chars).Int)
.fmt("%0" ~ $middle.chars ~ "b");
- my $result = $left ~ $middle ~ $right;
- %results{"($l, $r)"} = $result.comb(/1/).elems;
+ %results{"($l, $r)"} = ($left ~ $middle ~ $right).comb(/1/).elems;
}
- my $max = %results.values.max;
- .say if .value == $max for %results.sort;
+ .say if .value == %results.values.max for %results.sort;
}
diff --git a/challenge-055/mark-anderson/raku/ch-2.p6 b/challenge-055/mark-anderson/raku/ch-2.p6
new file mode 100644
index 0000000000..2c74d0b8ab
--- /dev/null
+++ b/challenge-055/mark-anderson/raku/ch-2.p6
@@ -0,0 +1,11 @@
+use MONKEY-SEE-NO-EVAL;
+
+sub MAIN(*@array where @array ~~ /\d/) {
+ my @strings = @array.permutations.map(~*).unique;
+
+ for @strings -> $string {
+ my $str = $string.subst(/ \s (\d) \s (\d) /, { ">= $0 <= $1" }, :g);
+ $str = $str.subst(/ (\d) \s (\d) $ /, { "$0 >= $1" });
+ say $string if EVAL $str;
+ }
+}