diff options
| author | Mohammad S Anwar <Mohammad.Anwar@yahoo.com> | 2020-01-29 04:56:20 +0000 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2020-01-29 04:56:20 +0000 |
| commit | eb5e7c63ad640fbe76d85f4071145f450c8228a1 (patch) | |
| tree | 79a78939678860a0d8b67e1239d2ac1a0cb5c668 /challenge-044 | |
| parent | c6948371d9a46df913b427160c4a72cc0735468e (diff) | |
| parent | b1e841b6a48034cb6ceec6453f32a803125a9657 (diff) | |
| download | perlweeklychallenge-club-eb5e7c63ad640fbe76d85f4071145f450c8228a1.tar.gz perlweeklychallenge-club-eb5e7c63ad640fbe76d85f4071145f450c8228a1.tar.bz2 perlweeklychallenge-club-eb5e7c63ad640fbe76d85f4071145f450c8228a1.zip | |
Merge pull request #1174 from jokraft/branch-for-challenge-44
Solution for Challenge 44 by Jan Ole Kraft.
Diffstat (limited to 'challenge-044')
| -rw-r--r-- | challenge-044/jokraft/README | 1 | ||||
| -rw-r--r-- | challenge-044/jokraft/raku/ch-1.p6 | 25 | ||||
| -rw-r--r-- | challenge-044/jokraft/raku/ch-2.p6 | 12 |
3 files changed, 38 insertions, 0 deletions
diff --git a/challenge-044/jokraft/README b/challenge-044/jokraft/README new file mode 100644 index 0000000000..bfd88142ca --- /dev/null +++ b/challenge-044/jokraft/README @@ -0,0 +1 @@ +Solution by Jan Ole Kraft. diff --git a/challenge-044/jokraft/raku/ch-1.p6 b/challenge-044/jokraft/raku/ch-1.p6 new file mode 100644 index 0000000000..6eb1c484ee --- /dev/null +++ b/challenge-044/jokraft/raku/ch-1.p6 @@ -0,0 +1,25 @@ +my $digitstr = "123456789"; +my @digits = split("", $digitstr, :skip-empty); +my $n = @digits.elems; +my $target = 100; + +grammar Evaluate { + token TOP {<INT> | <INT> <TOP>} + token INT {<[+-]>?\d+} +} + +class Calc { + method TOP ($/) {make ($<TOP>.made || 0) + $<INT>.made} + method INT ($/) {make $/.Str.Num} +} + +sub infix:<~->(Str $x, Str $y){$y~$x}; + +my $c = -1; + +for ([X~] [$@(@digits[0])].Array.append($((@digits[1 .. $n-1])>>.Str X[~-] ("", "+", "-"))[++$c*3 .. $c*3 +2] xx $n-1)) -> $str { + if Evaluate.parse($str, actions => Calc).made == $target { + say $str; + #last; + } +} diff --git a/challenge-044/jokraft/raku/ch-2.p6 b/challenge-044/jokraft/raku/ch-2.p6 new file mode 100644 index 0000000000..c5d7c74811 --- /dev/null +++ b/challenge-044/jokraft/raku/ch-2.p6 @@ -0,0 +1,12 @@ +my $target = 200; +my %hit := {1 => 1}; +my $steps = 0; +repeat { + for (%hit.keys) -> $key { + %hit{$key+1} = $key; + %hit{$key*2} = $key; + } + $steps++; +} until %hit{$target}; + +say $steps; |
