aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormimosinnet <mimosinnet@gmail.com>2021-05-23 12:36:48 +0200
committermimosinnet <mimosinnet@gmail.com>2021-05-23 12:36:48 +0200
commit01b4461c43222c077e82558ed65fe237be439e66 (patch)
treed9ba38f78a834cd3e4591dcf5a7f60b63b3374b9
parent1720995a5127b6d99fad5334b6ba8983c06693b2 (diff)
downloadperlweeklychallenge-club-01b4461c43222c077e82558ed65fe237be439e66.tar.gz
perlweeklychallenge-club-01b4461c43222c077e82558ed65fe237be439e66.tar.bz2
perlweeklychallenge-club-01b4461c43222c077e82558ed65fe237be439e66.zip
Solutions for challenge 113
-rw-r--r--challenge-113/mimosinnet/raku/ch-1.raku25
-rw-r--r--challenge-113/mimosinnet/raku/ch-2.raku66
2 files changed, 91 insertions, 0 deletions
diff --git a/challenge-113/mimosinnet/raku/ch-1.raku b/challenge-113/mimosinnet/raku/ch-1.raku
new file mode 100644
index 0000000000..9c0a4bff7e
--- /dev/null
+++ b/challenge-113/mimosinnet/raku/ch-1.raku
@@ -0,0 +1,25 @@
+# https://perlweeklychallenge.org/blog/perl-weekly-challenge-113/
+
+#|
+sub challenge( $n, $d ) {
+ return (1..$n).grep( /$d/ ).combinations(1..*).map({ $_.sum }).grep($n).Bool.Int;
+}
+
+multi sub MAIN( $n where $n>0, $d where 1..9 ) {
+ say sprintf('Input: $N = %d, $D = %d',$n,$d);
+ say sprintf("Output: %d\n",challenge($n,$d));
+}
+
+multi sub MAIN( 'challenge' ) {
+ MAIN(25,7);
+ MAIN(24,7)
+}
+
+multi sub MAIN( 'test' ) is hidden-from-USAGE {
+ use Test;
+
+ is challenge(25,7),0;
+ is challenge(24,7),1;
+
+ done-testing;
+}
diff --git a/challenge-113/mimosinnet/raku/ch-2.raku b/challenge-113/mimosinnet/raku/ch-2.raku
new file mode 100644
index 0000000000..8d7997b211
--- /dev/null
+++ b/challenge-113/mimosinnet/raku/ch-2.raku
@@ -0,0 +1,66 @@
+# https://perlweeklychallenge.org/blog/perl-weekly-challenge-113/
+
+sub challenge( @tree_input ) {
+ my $sum_nodes = @tree_input».List.flat.sum;
+ return @tree_input.deepmap( $sum_nodes - *);
+}
+
+multi sub MAIN( @tree_input ) {
+ say 'Input Binary Tree ',@tree_input;
+ say 'Output Binary Tree ',challenge(@tree_input);
+}
+
+multi sub MAIN( 'challenge' ) {
+
+ my @tree_input =
+ (1,
+ (2,
+ (4,
+ (),
+ (7)
+ ),
+ ),
+ (3,
+ (5),
+ (6)
+ )
+ );
+ MAIN(@tree_input);
+}
+
+multi sub MAIN( 'test' ) is hidden-from-USAGE {
+ use Test;
+
+ my @tree_input =
+ (1,
+ (2,
+ (4,
+ (),
+ (7)
+ ),
+ ),
+ (3,
+ (5),
+ (6)
+ )
+ );
+
+ my @tree_output =
+ (27,
+ (26,
+ (24,
+ (),
+ (21)
+ )
+ ),
+ (25,
+ (23),
+ (22)
+ )
+ );
+
+ is challenge(@tree_input),@tree_output;
+
+ done-testing;
+
+}