aboutsummaryrefslogtreecommitdiff
path: root/challenge-258/luca-ferrari/python/ch-2.py
diff options
context:
space:
mode:
Diffstat (limited to 'challenge-258/luca-ferrari/python/ch-2.py')
-rw-r--r--challenge-258/luca-ferrari/python/ch-2.py36
1 files changed, 36 insertions, 0 deletions
diff --git a/challenge-258/luca-ferrari/python/ch-2.py b/challenge-258/luca-ferrari/python/ch-2.py
new file mode 100644
index 0000000000..a5f6a97177
--- /dev/null
+++ b/challenge-258/luca-ferrari/python/ch-2.py
@@ -0,0 +1,36 @@
+#!python
+
+#
+# Perl Weekly Challenge 258
+# Task 2
+#
+# See <https://perlweeklychallenge.org/blog/perl-weekly-challenge-258>
+#
+
+import sys
+
+
+# task implementation
+# the return value will be printed
+def task_2( args ):
+ k = int( args[ 0 ] )
+ nums = list( map( int, args[ 1: ] ) )
+
+ def is_index_ok( v, k ):
+ b = '{0:08b}'.format( v )
+ count = sum( map( int, list( '{0:08b}'.format( v ) ) ) )
+ return count == k
+
+ indexes = list( filter( lambda i: is_index_ok( i, k ),
+ range(0, len( nums ) ) ) )
+
+ summy = 0
+ for i in indexes:
+ summy += nums[ i ]
+
+ return summy
+
+
+# invoke the main without the command itself
+if __name__ == '__main__':
+ print( task_2( sys.argv[ 1: ] ) )