aboutsummaryrefslogtreecommitdiff
path: root/challenge-199
diff options
context:
space:
mode:
authorMariano Spadaccini <spadacciniweb@gmail.com>2023-01-09 12:44:56 +0100
committerMariano Spadaccini <spadacciniweb@gmail.com>2023-01-09 12:44:56 +0100
commiteab50459cf1a24866212bea895655b2d1c63f9cb (patch)
tree5aba0e0ad60f8b3b441202867c8b54621f5d115a /challenge-199
parentb8a1cd65abd85f6cf9df5b9dc5bc34677763b531 (diff)
downloadperlweeklychallenge-club-eab50459cf1a24866212bea895655b2d1c63f9cb.tar.gz
perlweeklychallenge-club-eab50459cf1a24866212bea895655b2d1c63f9cb.tar.bz2
perlweeklychallenge-club-eab50459cf1a24866212bea895655b2d1c63f9cb.zip
challenge 199 by spadacciniweb
Diffstat (limited to 'challenge-199')
-rw-r--r--challenge-199/spadacciniweb/README1
-rw-r--r--challenge-199/spadacciniweb/perl/ch-1.pl14
-rw-r--r--challenge-199/spadacciniweb/perl/ch-2.pl35
3 files changed, 50 insertions, 0 deletions
diff --git a/challenge-199/spadacciniweb/README b/challenge-199/spadacciniweb/README
new file mode 100644
index 0000000000..8d335de4c1
--- /dev/null
+++ b/challenge-199/spadacciniweb/README
@@ -0,0 +1 @@
+Solution by Mariano Spadaccini.
diff --git a/challenge-199/spadacciniweb/perl/ch-1.pl b/challenge-199/spadacciniweb/perl/ch-1.pl
new file mode 100644
index 0000000000..e6840eea49
--- /dev/null
+++ b/challenge-199/spadacciniweb/perl/ch-1.pl
@@ -0,0 +1,14 @@
+#!/usr/bin/env perl
+use strict;
+use warnings;
+
+my @list = @ARGV;
+die 'list elements < 2'
+ if scalar @list < 2;
+
+my $output = 0;
+foreach my $i (0..$#list-1) {
+ $output += scalar map { $list[$i] == $list[$_] ? 1 : () }
+ ($i+1..$#list);
+}
+printf 'Output: %s', $output;
diff --git a/challenge-199/spadacciniweb/perl/ch-2.pl b/challenge-199/spadacciniweb/perl/ch-2.pl
new file mode 100644
index 0000000000..cd5cf1fc00
--- /dev/null
+++ b/challenge-199/spadacciniweb/perl/ch-2.pl
@@ -0,0 +1,35 @@
+#!/usr/bin/env perl
+use strict;
+use warnings;
+
+
+print "List elements: ";
+my @list = split /\s+/, <STDIN>;
+print "Three integers: ";
+my @integers = split /\s+/, <STDIN>;
+
+die 'input not valid'
+ if scalar @list < 3
+ or
+ scalar @integers < 3
+ or
+ (scalar map { $_ =~ /^[+\-]?\d+$/ ? 1 : () } @list) != (scalar @list)
+ or
+ scalar map { $_ =~ /^[+\-]?\d+$/ } @integers != 3
+;
+
+my ($x, $y, $z) = @integers;
+my $output = 0;
+foreach my $i (0..$#list-2) {
+ foreach my $j ($i+1..$#list-1) {
+ $output += scalar map { 1 }
+ grep {
+ abs($list[$i] - $list[$j]) <= $x
+ and
+ abs($list[$j] - $list[$_]) <= $y
+ and
+ abs($list[$i] - $list[$_]) <= $z
+ } ($j+1..$#list);
+ }
+}
+printf 'Output: %s', $output;