aboutsummaryrefslogtreecommitdiff
path: root/challenge-218
diff options
context:
space:
mode:
authorMohammad S Anwar <Mohammad.Anwar@yahoo.com>2023-05-25 18:00:26 +0100
committerGitHub <noreply@github.com>2023-05-25 18:00:26 +0100
commit4bb4dfe32c3207faf5096c583c0f0ca5cfd68dbc (patch)
tree6f12d077a3a01ea2535d962c7ad04172d9fac0f4 /challenge-218
parentbdbe9928d7ef55ac7fef9bacaf12b414b78df951 (diff)
parent9a29e677aeea1b616e6fcf9eff5dc4e92f36b98f (diff)
downloadperlweeklychallenge-club-4bb4dfe32c3207faf5096c583c0f0ca5cfd68dbc.tar.gz
perlweeklychallenge-club-4bb4dfe32c3207faf5096c583c0f0ca5cfd68dbc.tar.bz2
perlweeklychallenge-club-4bb4dfe32c3207faf5096c583c0f0ca5cfd68dbc.zip
Merge pull request #8132 from oldtechaa/avery-adams-218
Solution for task 1 for Avery Adams week 218
Diffstat (limited to 'challenge-218')
-rw-r--r--challenge-218/avery-adams/blog.txt1
-rw-r--r--challenge-218/avery-adams/blog1.txt1
-rw-r--r--challenge-218/avery-adams/perl/ch-1.pl36
3 files changed, 38 insertions, 0 deletions
diff --git a/challenge-218/avery-adams/blog.txt b/challenge-218/avery-adams/blog.txt
new file mode 100644
index 0000000000..497b60280b
--- /dev/null
+++ b/challenge-218/avery-adams/blog.txt
@@ -0,0 +1 @@
+https://dev.to/oldtechaa/perl-weekly-challenge-218-feeling-negative-3gdc \ No newline at end of file
diff --git a/challenge-218/avery-adams/blog1.txt b/challenge-218/avery-adams/blog1.txt
new file mode 100644
index 0000000000..4cf155ebd2
--- /dev/null
+++ b/challenge-218/avery-adams/blog1.txt
@@ -0,0 +1 @@
+https://blogs.perl.org/users/oldtechaa/2023/05/perl-weekly-challenge-218---feeling-negative.html \ No newline at end of file
diff --git a/challenge-218/avery-adams/perl/ch-1.pl b/challenge-218/avery-adams/perl/ch-1.pl
new file mode 100644
index 0000000000..1c5bad2be8
--- /dev/null
+++ b/challenge-218/avery-adams/perl/ch-1.pl
@@ -0,0 +1,36 @@
+#!/usr/bin/perl
+
+use strict;
+use v5.24;
+
+my @sorted = sort {abs($b) <=> abs($a)} @ARGV;
+my $complete;
+until ($complete) {
+ my $negCount = isNeg($sorted[0]) + isNeg($sorted[1]) + isNeg($sorted[2]);
+ if ($negCount == 2 || $negCount == 0) {
+ $complete = 1;
+ } else {
+ my $positives;
+ for (2..$#sorted) {
+ $positives = 1 if !isNeg($sorted[$_]);
+ }
+ if ($positives) {
+ for (2, 1, 0) {
+ if (abs($sorted[$_]) == $sorted[$_]) {
+ next;
+ } else {
+ splice (@sorted, $_, 1);
+ last;
+ }
+ }
+ } else {
+ say $sorted[-1] * $sorted[-2] * $sorted[-3] and exit;
+ }
+ }
+}
+say $sorted[0] * $sorted[1] * $sorted[2];
+
+sub isNeg {
+ my $num = shift;
+ return $num < 0 ? 1 : 0;
+}