From 8e1cfd624b4a8452e4e57d72448adc688682fdbb Mon Sep 17 00:00:00 2001 From: Daniel Mita Date: Sun, 25 Oct 2020 22:29:36 +0000 Subject: Add solution for challenge-083-2 in Perl --- challenge-083/daniel-mita/perl/ch-2.pl | 27 +++++++++++++++++++++++++++ challenge-083/daniel-mita/raku/ch-2.raku | 6 +++--- 2 files changed, 30 insertions(+), 3 deletions(-) create mode 100755 challenge-083/daniel-mita/perl/ch-2.pl diff --git a/challenge-083/daniel-mita/perl/ch-2.pl b/challenge-083/daniel-mita/perl/ch-2.pl new file mode 100755 index 0000000000..9883d94635 --- /dev/null +++ b/challenge-083/daniel-mita/perl/ch-2.pl @@ -0,0 +1,27 @@ +#!/usr/bin/env perl + +use strict; +use warnings; +use feature qw; + +use List::Util qw; +use Scalar::Util qw; + +if ( @ARGV == 0 || grep { !looks_like_number($_) || $_ < 1 } @ARGV ) { + say 'List of positive numbers required.'; + exit 1; +} + +my @combinations; +for ( my $i = 0; $i < @ARGV; $i++ ) { + for ( my $j = $i; $j < @ARGV; $j++ ) { + push @combinations, [ @ARGV[ $i .. $j ] ]; + } +} + +say scalar( + @{ [ sort { sum( @{$b} ) <=> sum( @{$a} ) || @{$a} <=> @{$b} } + grep { sum( @{$_} ) <= sum(@ARGV) / 2 } @combinations + ]->[0] + } +); diff --git a/challenge-083/daniel-mita/raku/ch-2.raku b/challenge-083/daniel-mita/raku/ch-2.raku index ed5730718d..3c72a13df6 100755 --- a/challenge-083/daniel-mita/raku/ch-2.raku +++ b/challenge-083/daniel-mita/raku/ch-2.raku @@ -1,12 +1,12 @@ #!/usr/bin/env raku sub MAIN( - *@positive-ints where { .elems > 0 && .all ~~ Int && .all > 0 } + *@positive-nums where { .elems > 0 && .all.Rat && .all > 0 } --> Nil ) { @( - @positive-ints.combinations(1..*) - .grep( *.sum ≤ @positive-ints.sum / 2 ) + @positive-nums.combinations(1..*) + .grep( *.sum ≤ @positive-nums.sum / 2 ) .sort({ $^b.sum <=> $^a.sum || $a.elems <=> $b.elems }) )[0].elems.say; } -- cgit