From 7ccb48f1b9b3bc07f9a63f335a57dc1756d7539c Mon Sep 17 00:00:00 2001 From: Walt Mankowski Date: Mon, 10 Aug 2020 19:45:18 -0400 Subject: perl solution for challenge 73 task 1 --- challenge-073/walt-mankowski/perl/ch-1.pl | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 challenge-073/walt-mankowski/perl/ch-1.pl 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"; -- cgit