aboutsummaryrefslogtreecommitdiff
path: root/challenge-073/paulo-custodio/python/ch-1.py
blob: fb86229a6c7b0a1d731921893233cadf028379b8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
#!/usr/bin/env python3

# Challenge 073
#
# 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)

import sys

def min_sliding_window(s, a):
    min_ = []
    for i in range(0, len(a)-s+1):
        sub_ = a[i:i+s]
        min_.append(min(sub_))
    return min_

S = int(sys.argv[1])
M = list(map(int, sys.argv[2:]))
min_ = min_sliding_window(S, M)
print(", ".join([str(x) for x in min_]))