aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--challenge-248/zapwai/perl/ch-1.pl19
-rw-r--r--challenge-248/zapwai/perl/ch-2.pl28
2 files changed, 47 insertions, 0 deletions
diff --git a/challenge-248/zapwai/perl/ch-1.pl b/challenge-248/zapwai/perl/ch-1.pl
new file mode 100644
index 0000000000..00e161cc78
--- /dev/null
+++ b/challenge-248/zapwai/perl/ch-1.pl
@@ -0,0 +1,19 @@
+use v5.30;
+my @ints = (3,2,1,4);
+say "Input: \@ints = (".join(", ", @ints).")";
+my ($min, $max) = (1000000, 0);
+for my $current (@ints) {
+ $max = $current if ($max < $current);
+ $min = $current if ($min > $current);
+}
+my @bad;
+for my $i (0 .. $#ints) {
+ if (($ints[$i] == $max) or ($ints[$i] == $min) ) {
+ push @bad, $i;
+ }
+}
+splice @ints, $_, 1 foreach (reverse @bad);
+print "Output: ";
+
+my $out = (!@ints) ? "-1" : join(", ",@ints);
+say $out;
diff --git a/challenge-248/zapwai/perl/ch-2.pl b/challenge-248/zapwai/perl/ch-2.pl
new file mode 100644
index 0000000000..9272cf60ba
--- /dev/null
+++ b/challenge-248/zapwai/perl/ch-2.pl
@@ -0,0 +1,28 @@
+use v5.30;
+my $a = [
+ [1, 2, 3, 4],
+ [5, 6, 7, 8],
+ [9, 10, 11, 12]
+];
+my $n = @$a - 1;
+my $m = @{$$a[0]} - 1;
+say "Input: \$a = [";
+for (0 .. $n) {
+ say "\t[" . join(",", @{$$a[$_]}) ."]";
+}
+say "\t]";
+my @b;
+for my $i (0 .. $n - 1) {
+ for my $j (0 .. $m - 1) {
+ $$b[$i][$j] = subsum($i,$j);
+ }
+}
+say "Output: \$b = [";
+for (0 .. $n - 1) {
+ say "\t[" . join(",", @{$$b[$_]}) ."]";
+}
+say "\t]";
+sub subsum {
+ my ($i, $j) = @_;
+ return $$a[$i][$j] + $$a[$i+1][$j] + $$a[$i][$j+1] + $$a[$i+1][$j+1];
+}