aboutsummaryrefslogtreecommitdiff
path: root/challenge-044
diff options
context:
space:
mode:
authorMohammad S Anwar <Mohammad.Anwar@yahoo.com>2020-01-29 04:56:20 +0000
committerGitHub <noreply@github.com>2020-01-29 04:56:20 +0000
commiteb5e7c63ad640fbe76d85f4071145f450c8228a1 (patch)
tree79a78939678860a0d8b67e1239d2ac1a0cb5c668 /challenge-044
parentc6948371d9a46df913b427160c4a72cc0735468e (diff)
parentb1e841b6a48034cb6ceec6453f32a803125a9657 (diff)
downloadperlweeklychallenge-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/README1
-rw-r--r--challenge-044/jokraft/raku/ch-1.p625
-rw-r--r--challenge-044/jokraft/raku/ch-2.p612
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;