diff options
| author | Mark Anderson <mark@frontrangerunner.com> | 2020-09-21 01:24:40 -0600 |
|---|---|---|
| committer | Mark Anderson <mark@frontrangerunner.com> | 2020-09-21 01:24:40 -0600 |
| commit | c7c05e77d7d8a112b8338eb8b1fb58b81e0f20e3 (patch) | |
| tree | 915794a573d62d8141cf8b8a3538c00c69f94145 /challenge-079 | |
| parent | 5ac16ac7e9826137e0da5597e954f4992c66205d (diff) | |
| download | perlweeklychallenge-club-c7c05e77d7d8a112b8338eb8b1fb58b81e0f20e3.tar.gz perlweeklychallenge-club-c7c05e77d7d8a112b8338eb8b1fb58b81e0f20e3.tar.bz2 perlweeklychallenge-club-c7c05e77d7d8a112b8338eb8b1fb58b81e0f20e3.zip | |
Challenge 79 Solutions (Raku)
Diffstat (limited to 'challenge-079')
| -rw-r--r-- | challenge-079/mark-anderson/raku/ch-1.raku | 3 | ||||
| -rw-r--r-- | challenge-079/mark-anderson/raku/ch-2.raku | 37 |
2 files changed, 40 insertions, 0 deletions
diff --git a/challenge-079/mark-anderson/raku/ch-1.raku b/challenge-079/mark-anderson/raku/ch-1.raku new file mode 100644 index 0000000000..99e060c88f --- /dev/null +++ b/challenge-079/mark-anderson/raku/ch-1.raku @@ -0,0 +1,3 @@ +unit sub MAIN($N where * > 0); + +say (1..$N).map(*.base(2).indices(1)).sum mod 1000000007; diff --git a/challenge-079/mark-anderson/raku/ch-2.raku b/challenge-079/mark-anderson/raku/ch-2.raku new file mode 100644 index 0000000000..d3ee9a7606 --- /dev/null +++ b/challenge-079/mark-anderson/raku/ch-2.raku @@ -0,0 +1,37 @@ +=begin usage + +Usage: raku ch-2.raku 9 3 1 1 4 2 3 2 5 1 5 8 5 5 4 3 1 7 8 9 9 1 9 5 2 2 6 5 + +Output: + +9 # # # # +8 # # # # # # +7 # # # # # # # +6 # # # # # # # # +5 # # # # # # # # # # # # # # +4 # # # # # # # # # # # # # # # # +3 # # # # # # # # # # # # # # # # # # # +2 # # # # # # # # # # # # # # # # # # # # # # # +1 # # # # # # # # # # # # # # # # # # # # # # # # # # # # + +111 + +=end usage + +#| MAIN only takes arguments from 1 to 9 +unit sub MAIN(*@ints where (.elems > 0 and .all ~~ 1..9)); + +my $pos = 0; +my $sum = 0; + +for @ints.max...1 -> $n { + say "$n @ints.map({ $_ >= $n ?? "#" !! " " })"; +} + +while @ints.join ~~ m:c($pos)/ (\d)(\d+)(\d) <?{ $0 > $1.comb.all < $2 }> / { + $sum += (($0, $2).min <<->> $1.comb).sum; + + $pos = $/.to - 1; +} + +say "\n", $sum; |
