aboutsummaryrefslogtreecommitdiff
path: root/challenge-074/paulo-custodio/python/ch-1.py
diff options
context:
space:
mode:
authorSolathian <horvath6@gmail.com>2025-08-02 16:28:12 +0200
committerSolathian <horvath6@gmail.com>2025-08-02 16:28:12 +0200
commit4014f0eb1fa46f39fee72c2add76ca47f2dd1637 (patch)
tree07ed523115445f773f90f3d0f08c83456457e54e /challenge-074/paulo-custodio/python/ch-1.py
parent83179303806e75ac6aa4c786cefbb89ab6ddeaf7 (diff)
parent698c027e7ef73ac2753c97d4e64d7fba2b2ddc95 (diff)
downloadperlweeklychallenge-club-4014f0eb1fa46f39fee72c2add76ca47f2dd1637.tar.gz
perlweeklychallenge-club-4014f0eb1fa46f39fee72c2add76ca47f2dd1637.tar.bz2
perlweeklychallenge-club-4014f0eb1fa46f39fee72c2add76ca47f2dd1637.zip
Merge remote-tracking branch 'upstream/master'
Diffstat (limited to 'challenge-074/paulo-custodio/python/ch-1.py')
-rw-r--r--challenge-074/paulo-custodio/python/ch-1.py45
1 files changed, 45 insertions, 0 deletions
diff --git a/challenge-074/paulo-custodio/python/ch-1.py b/challenge-074/paulo-custodio/python/ch-1.py
new file mode 100644
index 0000000000..cce27f69b9
--- /dev/null
+++ b/challenge-074/paulo-custodio/python/ch-1.py
@@ -0,0 +1,45 @@
+#!/usr/bin/env python3
+
+# Challenge 074
+#
+# TASK #1 > Majority Element
+# Submitted by: Mohammad S Anwar
+# You are given an array of integers of size $N.
+#
+# Write a script to find the majority element. If none found then print -1.
+#
+# Majority element in the list is the one that appears more than
+# floor(size_of_list/2).
+#
+# Example 1
+# Input: @A = (1, 2, 2, 3, 2, 4, 2)
+# Output: 2, as 2 appears 4 times in the list which is more than floor(7/2).
+#
+# Example 2
+# Input: @A = (1, 3, 1, 2, 4, 5)
+# Output: -1 as none of the elements appears more than floor(6/2).
+
+import sys
+
+def majority_elem(a):
+ # count instances of each element, get max
+ count = {}
+ max_count = 0
+ max_elem = None
+ for x in a:
+ if x in count:
+ count[x] += 1
+ else:
+ count[x] = 1
+
+ if count[x] > max_count:
+ max_count, max_elem = count[x], x
+
+ # check if majority
+ if max_count > int(len(a)/2):
+ return max_elem
+ else:
+ return -1
+
+a = [int(x) for x in sys.argv[1:]]
+print(majority_elem(a))