diff options
Diffstat (limited to 'challenge-276/sgreen/python')
| -rwxr-xr-x | challenge-276/sgreen/python/ch-1.py | 35 | ||||
| -rwxr-xr-x | challenge-276/sgreen/python/ch-2.py | 37 | ||||
| -rwxr-xr-x | challenge-276/sgreen/python/test.py | 20 |
3 files changed, 92 insertions, 0 deletions
diff --git a/challenge-276/sgreen/python/ch-1.py b/challenge-276/sgreen/python/ch-1.py new file mode 100755 index 0000000000..589990a0ba --- /dev/null +++ b/challenge-276/sgreen/python/ch-1.py @@ -0,0 +1,35 @@ +#!/usr/bin/env python3 + +import sys + + +def complete_day(hours: list) -> int: + """ + Counts the number of pairs of hours in the given list that sum up to a multiple of 24. + + Args: + hours (list): A list of integers representing the hours. + + Returns: + int: The number of pairs of hours that sum up to a multiple of 24. + """ + count = 0 + items = len(hours) + + for i in range(items-1): + for j in range(i+1, items): + if (hours[i] + hours[j]) % 24 == 0: + count += 1 + + return count + + +def main(): + # Convert input into integers + array = [int(n) for n in sys.argv[1:]] + result = complete_day(array) + print(result) + + +if __name__ == '__main__': + main() diff --git a/challenge-276/sgreen/python/ch-2.py b/challenge-276/sgreen/python/ch-2.py new file mode 100755 index 0000000000..198042c31b --- /dev/null +++ b/challenge-276/sgreen/python/ch-2.py @@ -0,0 +1,37 @@ +#!/usr/bin/env python3 + +from collections import Counter +import sys + + +def maximum_frequency(ints: list) -> str: + """ + Calculate the maximum frequency of elements in a list and returns the + number of elements with that appear with this frequency. + + Args: + ints (list): A list of integers. + + Returns: + str: The number of elements with appear most frequency. + """ + # Convert the list in a frequency dictionary + freq = Counter(ints) + max_freq = max(freq.values()) + + # Count the number of elements with the maximum frequency + elements = sum(1 for v in freq.values() if v == max_freq) + + # Multiply the number of elements by the frequency + return elements * max_freq + + +def main(): + # Convert input into integers + array = [int(n) for n in sys.argv[1:]] + result = maximum_frequency(array) + print(result) + + +if __name__ == '__main__': + main() diff --git a/challenge-276/sgreen/python/test.py b/challenge-276/sgreen/python/test.py new file mode 100755 index 0000000000..8f9c4d93cf --- /dev/null +++ b/challenge-276/sgreen/python/test.py @@ -0,0 +1,20 @@ +#!/usr/bin/env python3 + +import unittest +ch_1 = __import__('ch-1') +ch_2 = __import__('ch-2') + + +class TestClass(unittest.TestCase): + def test_ch_1(self): + self.assertEqual(ch_1.complete_day([12, 12, 30, 24, 24]), 2) + self.assertEqual(ch_1.complete_day([72, 48, 24, 5]), 3) + self.assertEqual(ch_1.complete_day([12, 18, 24]), 0) + + def test_ch_2(self): + self.assertEqual(ch_2.maximum_frequency([1, 2, 2, 4, 1, 5]), 4) + self.assertEqual(ch_2.maximum_frequency([1, 2, 3, 4, 5]), 5) + + +if __name__ == '__main__': + unittest.main() |
