aboutsummaryrefslogtreecommitdiff
path: root/challenge-237/pokgopun/python/ch-2.py
diff options
context:
space:
mode:
Diffstat (limited to 'challenge-237/pokgopun/python/ch-2.py')
-rw-r--r--challenge-237/pokgopun/python/ch-2.py62
1 files changed, 62 insertions, 0 deletions
diff --git a/challenge-237/pokgopun/python/ch-2.py b/challenge-237/pokgopun/python/ch-2.py
new file mode 100644
index 0000000000..7f52133712
--- /dev/null
+++ b/challenge-237/pokgopun/python/ch-2.py
@@ -0,0 +1,62 @@
+### https://theweeklychallenge.org/blog/perl-weekly-challenge-237/
+"""
+
+Task 2: Maximise Greatness
+
+Submitted by: [45]Mohammad S Anwar
+ __________________________________________________________________
+
+ You are given an array of integers.
+
+ Write a script to permute the give array such that you get the maximum
+ possible greatness.
+
+ To determine greatness, nums[i] < perm[i] where 0 <= i < nums.length
+
+Example 1
+
+Input: @nums = (1, 3, 5, 2, 1, 3, 1)
+Output: 4
+
+One possible permutation: (2, 5, 1, 3, 3, 1, 1) which returns 4 greatness as bel
+ow:
+nums[0] < perm[0]
+nums[1] < perm[1]
+nums[3] < perm[3]
+nums[4] < perm[4]
+
+Example 2
+
+Input: @ints = (1, 2, 3, 4)
+Output: 3
+
+One possible permutation: (2, 3, 4, 1) which returns 3 greatness as below:
+nums[0] < perm[0]
+nums[1] < perm[1]
+nums[2] < perm[2]
+ __________________________________________________________________
+
+ Last date to submit the solution 23:59 (UK Time) Sunday 8th October
+ 2023.
+ __________________________________________________________________
+
+SO WHAT DO YOU THINK ?
+"""
+### solution by pokgopun@gmail.com
+
+from itertools import permutations
+
+def maxGreat(tup):
+ l, m = len(tup), 0
+ for pm in permutations(tup):
+ g = tuple( pm[i] > tup[i] for i in range(l) ).count(True)
+ if m < g : m = g
+ return m
+
+for inpt,otpt in {
+ (1, 3, 5, 2, 1, 3, 1): 4,
+ (1, 2, 3, 4): 3,
+ }.items():
+ print(maxGreat(inpt)==otpt)
+
+