diff options
| author | Michael Manring <michael@manring> | 2024-03-26 11:51:55 +1100 |
|---|---|---|
| committer | Michael Manring <michael@manring> | 2024-03-26 11:51:55 +1100 |
| commit | 4ce98ecb26dcf152766e02c7f31492eb9e6d9eb7 (patch) | |
| tree | 34ac63f9e16939954a0ca28ce0ab2b5a0b906f09 /challenge-262/pokgopun/python/ch-2.py | |
| parent | 041fe9129e3ef4d86df461a0feeee1b3740d5758 (diff) | |
| download | perlweeklychallenge-club-4ce98ecb26dcf152766e02c7f31492eb9e6d9eb7.tar.gz perlweeklychallenge-club-4ce98ecb26dcf152766e02c7f31492eb9e6d9eb7.tar.bz2 perlweeklychallenge-club-4ce98ecb26dcf152766e02c7f31492eb9e6d9eb7.zip | |
pwc262 solution in python
Diffstat (limited to 'challenge-262/pokgopun/python/ch-2.py')
| -rw-r--r-- | challenge-262/pokgopun/python/ch-2.py | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/challenge-262/pokgopun/python/ch-2.py b/challenge-262/pokgopun/python/ch-2.py new file mode 100644 index 0000000000..9ab45e565a --- /dev/null +++ b/challenge-262/pokgopun/python/ch-2.py @@ -0,0 +1,58 @@ +### https://theweeklychallenge.org/blog/perl-weekly-challenge-262/ +""" + +Task 2: Count Equal Divisible + +Submitted by: [47]Mohammad Sajid Anwar + __________________________________________________________________ + + You are given an array of integers, @ints and an integer $k. + + Write a script to return the number of pairs (i, j) where +a) 0 <= i < j < size of @ints +b) ints[i] == ints[j] +c) i x j is divisible by k + +Example 1 + +Input: @ints = (3,1,2,2,2,1,3) and $k = 2 +Output: 4 + +(0, 6) => ints[0] == ints[6] and 0 x 6 is divisible by 2 +(2, 3) => ints[2] == ints[3] and 2 x 3 is divisible by 2 +(2, 4) => ints[2] == ints[4] and 2 x 4 is divisible by 2 +(3, 4) => ints[3] == ints[4] and 3 x 4 is divisible by 2 + +Example 2 + +Input: @ints = (1,2,3) and $k = 1 +Output: 0 + __________________________________________________________________ + + Last date to submit the solution 23:59 (UK Time) Sunday 31st March + 2024. + __________________________________________________________________ + +SO WHAT DO YOU THINK ? +""" +### solution by pokgopun@gmail.com + +from itertools import combinations + +def ced(ints: tuple, k: int): + return sum( + 1 for e in combinations(range(len(ints)),2) + if (e[0]*e[1]) % 2 == 0 and ints[e[0]]==ints[e[1]] + ) + +import unittest + +class TestCed(unittest.TestCase): + def test(self): + for otpt, (ints, k) in { + 4: ((3,1,2,2,2,1,3), 2), + 0: ((1,2,3), 1), + }.items(): + self.assertEqual(otpt, ced(ints, k)) + +unittest.main() |
