aboutsummaryrefslogtreecommitdiff
path: root/challenge-258/luca-ferrari/python
diff options
context:
space:
mode:
Diffstat (limited to 'challenge-258/luca-ferrari/python')
-rw-r--r--challenge-258/luca-ferrari/python/ch-1.py25
-rw-r--r--challenge-258/luca-ferrari/python/ch-2.py36
2 files changed, 61 insertions, 0 deletions
diff --git a/challenge-258/luca-ferrari/python/ch-1.py b/challenge-258/luca-ferrari/python/ch-1.py
new file mode 100644
index 0000000000..4ba789cf54
--- /dev/null
+++ b/challenge-258/luca-ferrari/python/ch-1.py
@@ -0,0 +1,25 @@
+#!python
+
+#
+# Perl Weekly Challenge 258
+# Task 1
+#
+# See <https://perlweeklychallenge.org/blog/perl-weekly-challenge-258>
+#
+
+import sys
+
+# task implementation
+# the return value will be printed
+def task_1( args ):
+ sum = 0
+ for n in args:
+ if len( n ) % 2 == 0:
+ sum += 1
+
+ return sum
+
+
+# invoke the main without the command itself
+if __name__ == '__main__':
+ print( task_1( sys.argv[ 1: ] ) )
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: ] ) )