diff options
| author | Mark Anderson <mark@frontrangerunner.com> | 2020-04-06 07:44:32 -0600 |
|---|---|---|
| committer | Mark Anderson <mark@frontrangerunner.com> | 2020-04-06 07:44:32 -0600 |
| commit | c141a82d20d3ebf8ce3112e30ad048b7cb62f764 (patch) | |
| tree | da4b8daf19c831be518a7abdccbab718f3f8ba0e | |
| parent | 5a0d299f3e690fa52a26325db0e1f386887cbfcc (diff) | |
| download | perlweeklychallenge-club-c141a82d20d3ebf8ce3112e30ad048b7cb62f764.tar.gz perlweeklychallenge-club-c141a82d20d3ebf8ce3112e30ad048b7cb62f764.tar.bz2 perlweeklychallenge-club-c141a82d20d3ebf8ce3112e30ad048b7cb62f764.zip | |
ch-1.p6
| -rw-r--r-- | challenge-055/mark-anderson/raku/ch-1.p6 | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/challenge-055/mark-anderson/raku/ch-1.p6 b/challenge-055/mark-anderson/raku/ch-1.p6 new file mode 100644 index 0000000000..e7417ec445 --- /dev/null +++ b/challenge-055/mark-anderson/raku/ch-1.p6 @@ -0,0 +1,26 @@ +#!/usr/bin/env raku + +sub MAIN(Str $binary) { + my @LR = (0 .. $binary.chars-1).combinations: 2; + + for (0 .. $binary.chars-1) -> $n { + @LR.push(($n, $n)); + } + + my %results; + + for @LR -> ($l, $r) { + my $left = $binary.substr(0, $l); + my $middle = $binary.substr($l, $r+1-$l); + my $right = $binary.substr($r+1); + + $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; + } + + my $max = %results.values.max; + .say if .value == $max for %results.sort; +} |
