From 01b4461c43222c077e82558ed65fe237be439e66 Mon Sep 17 00:00:00 2001 From: mimosinnet Date: Sun, 23 May 2021 12:36:48 +0200 Subject: Solutions for challenge 113 --- challenge-113/mimosinnet/raku/ch-1.raku | 25 +++++++++++++ challenge-113/mimosinnet/raku/ch-2.raku | 66 +++++++++++++++++++++++++++++++++ 2 files changed, 91 insertions(+) create mode 100644 challenge-113/mimosinnet/raku/ch-1.raku create mode 100644 challenge-113/mimosinnet/raku/ch-2.raku 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; + +} -- cgit