aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWalt Mankowski <waltman@pobox.com>2020-08-10 19:45:18 -0400
committerWalt Mankowski <waltman@pobox.com>2020-08-10 19:45:18 -0400
commit7ccb48f1b9b3bc07f9a63f335a57dc1756d7539c (patch)
tree47227b672403411253ec6dff5134fcc5e5aef299
parentbd9eb24a17a7ed68df7e390960424e86c6a5b55d (diff)
downloadperlweeklychallenge-club-7ccb48f1b9b3bc07f9a63f335a57dc1756d7539c.tar.gz
perlweeklychallenge-club-7ccb48f1b9b3bc07f9a63f335a57dc1756d7539c.tar.bz2
perlweeklychallenge-club-7ccb48f1b9b3bc07f9a63f335a57dc1756d7539c.zip
perl solution for challenge 73 task 1
-rw-r--r--challenge-073/walt-mankowski/perl/ch-1.pl30
1 files changed, 30 insertions, 0 deletions
diff --git a/challenge-073/walt-mankowski/perl/ch-1.pl b/challenge-073/walt-mankowski/perl/ch-1.pl
new file mode 100644
index 0000000000..33adfc4de6
--- /dev/null
+++ b/challenge-073/walt-mankowski/perl/ch-1.pl
@@ -0,0 +1,30 @@
+#!/usr/bin/env perl
+use strict;
+use warnings;
+use feature qw(:5.32);
+use experimental qw(signatures);
+use List::Util qw(min);
+
+# TASK #1 › Min Sliding Window
+# Submitted by: Mohammad S Anwar
+
+# You are given an array of integers @A and sliding window size $S.
+
+# Write a script to create an array of min from each sliding window.
+# Example
+# Input: @A = (1, 5, 0, 2, 9, 3, 7, 6, 4, 8) and $S = 3
+# Output: (0, 0, 0, 2, 3, 3, 4, 4)
+
+# [(1 5 0) 2 9 3 7 6 4 8] = Min (0)
+# [1 (5 0 2) 9 3 7 6 4 8] = Min (0)
+# [1 5 (0 2 9) 3 7 6 4 8] = Min (0)
+# [1 5 0 (2 9 3) 7 6 4 8] = Min (2)
+# [1 5 0 2 (9 3 7) 6 4 8] = Min (3)
+# [1 5 0 2 9 (3 7 6) 4 8] = Min (3)
+# [1 5 0 2 9 3 (7 6 4) 8] = Min (4)
+# [1 5 0 2 9 3 7 (6 4 8)] = Min (4)
+
+my @a = @ARGV;
+my $s = pop @a;
+my @out = map { min @a[$_..$_+$s-1] } 0..(@a-$s);
+say "@out";