diff options
| author | Mohammad S Anwar <Mohammad.Anwar@yahoo.com> | 2020-04-07 15:34:36 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2020-04-07 15:34:36 +0100 |
| commit | 2c8cf922ad9930990af4a470b465476e922558e5 (patch) | |
| tree | bc9f4bb86430d4c6209338b2751b3c321480eb3c | |
| parent | 53bcfb01fec3c9a4a253ce14bb620a890012fb2d (diff) | |
| parent | 444ddf72157f648c8e6b04786e2700df6b8738b9 (diff) | |
| download | perlweeklychallenge-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.p6 | 10 | ||||
| -rw-r--r-- | challenge-055/mark-anderson/raku/ch-2.p6 | 11 |
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; + } +} |
