diff options
| -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; + } +} |
