aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--challenge-051/alicia-bielsa/perl/ch-1.pl22
-rw-r--r--challenge-051/alicia-bielsa/perl/ch-2.pl62
-rwxr-xr-xchallenge-051/alicia-bielsa/raku/ch-1.p623
3 files changed, 107 insertions, 0 deletions
diff --git a/challenge-051/alicia-bielsa/perl/ch-1.pl b/challenge-051/alicia-bielsa/perl/ch-1.pl
new file mode 100644
index 0000000000..d1f0a7c1e8
--- /dev/null
+++ b/challenge-051/alicia-bielsa/perl/ch-1.pl
@@ -0,0 +1,22 @@
+use strict;
+use warnings;
+
+#3 Sum
+
+#Given an array @Lof integers.
+#Write a script to find all unique triplets such that a + b + c is same as the given target T.
+#Also make sure a <= b <= c.
+
+my $target = 0;
+my @L = sort(-25, -7, -3, 2, 4, -10,8, 10);
+
+foreach my $a (0..$#L){
+ foreach my $b ($a+1..$#L){
+ foreach my $c ($b+1..$#L){
+ if ( ($L[$a] + $L[$b] + $L[$c]) == $target){
+ print $L[$a]." + ".$L[$b]." + ".$L[$c]." = $target.\n";
+ }
+ }
+ }
+}
+
diff --git a/challenge-051/alicia-bielsa/perl/ch-2.pl b/challenge-051/alicia-bielsa/perl/ch-2.pl
new file mode 100644
index 0000000000..4d4810fad5
--- /dev/null
+++ b/challenge-051/alicia-bielsa/perl/ch-2.pl
@@ -0,0 +1,62 @@
+use strict;
+use warnings;
+use Data::Dumper;
+use Test::More tests => 4;
+
+
+
+my %hTestSet = ( '1' => { given => 263,
+ expected => 1
+ },
+ '2' => { given => 2257,
+ expected => 0
+ },
+ '3' => { given => 2631,
+ expected => 0
+ },
+ '4' => { given => 258,
+ expected => 1
+ }
+ );
+
+foreach my $testSet (sort keys %hTestSet){
+ $hTestSet{$testSet}{result} = isColorful( $hTestSet{$testSet}{given});
+}
+
+
+foreach my $testSet (sort keys %hTestSet ){
+ my $result = 'Colorful';
+ if (!$hTestSet{$testSet}{result} ){
+ $result = 'Not '.$result;
+ }
+ is ($hTestSet{$testSet}{result} , $hTestSet{$testSet}{expected} ,"Test $testSet $hTestSet{$testSet}{given} $result");
+}
+
+sub isColorful {
+ my $number = shift;
+ my @aDigits = split ('', $number);
+ my %hProducts = ();
+ my $lengthNumber = scalar(@aDigits);
+ foreach my $subset (1..$lengthNumber){
+ foreach my $i (0..$#aDigits){
+ my $setFound = 1;
+ my $product = 1;
+ foreach my $s (0..$subset-1){
+ if (defined $aDigits[$i+$s]){
+ $product *= $aDigits[$i+$s];
+ } else {
+ $setFound = 0;
+ }
+ }
+ if ($setFound){
+ if (exists $hProducts{$product}){
+ return 0;
+ } else {
+ $hProducts{$product} = 1;
+ }
+ }
+ }
+ }
+ return 1;
+}
+
diff --git a/challenge-051/alicia-bielsa/raku/ch-1.p6 b/challenge-051/alicia-bielsa/raku/ch-1.p6
new file mode 100755
index 0000000000..4eb77c933f
--- /dev/null
+++ b/challenge-051/alicia-bielsa/raku/ch-1.p6
@@ -0,0 +1,23 @@
+use v6;
+
+#3 Sum
+
+#Given an array @Lof integers.
+#Write a script to find all unique triplets such that a + b + c is same as the given target T.
+#Also make sure a <= b <= c.
+
+my $target = 0;
+my @L = sort(-25, -7, -3, 2, 4, -10,8, 10);
+
+for 0..@L.end {
+ my $a = $_;
+ for $a+1..@L.end {
+ my $b = $_;
+ for $b+1..@L.end {
+ my $c = $_;
+ if (@L[$a] + @L[$b] + @L[$c]) == $target {
+ say "@L[$a] + @L[$b] + @L[$c] = $target";
+ }
+ }
+ }
+}