diff options
| author | Solathian <horvath6@gmail.com> | 2025-08-02 16:28:12 +0200 |
|---|---|---|
| committer | Solathian <horvath6@gmail.com> | 2025-08-02 16:28:12 +0200 |
| commit | 4014f0eb1fa46f39fee72c2add76ca47f2dd1637 (patch) | |
| tree | 07ed523115445f773f90f3d0f08c83456457e54e /challenge-074/paulo-custodio/python/ch-1.py | |
| parent | 83179303806e75ac6aa4c786cefbb89ab6ddeaf7 (diff) | |
| parent | 698c027e7ef73ac2753c97d4e64d7fba2b2ddc95 (diff) | |
| download | perlweeklychallenge-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.py | 45 |
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)) |
