aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--challenge-261/lubos-kolouch/perl/ch-1.pl28
-rw-r--r--challenge-261/lubos-kolouch/perl/ch-2.pl20
-rw-r--r--challenge-261/lubos-kolouch/python/ch-1.py14
-rw-r--r--challenge-261/lubos-kolouch/python/ch-2.py16
4 files changed, 78 insertions, 0 deletions
diff --git a/challenge-261/lubos-kolouch/perl/ch-1.pl b/challenge-261/lubos-kolouch/perl/ch-1.pl
new file mode 100644
index 0000000000..a2de8da1b4
--- /dev/null
+++ b/challenge-261/lubos-kolouch/perl/ch-1.pl
@@ -0,0 +1,28 @@
+package Ch1;
+use strict;
+use warnings;
+
+{
+
+sub element_digit_sum {
+ my (@ints) = @_;
+ my $element_sum = 0;
+ my $digit_sum = 0;
+
+ foreach my $int (@ints) {
+ $element_sum += $int;
+ $digit_sum += $_ for split //, $int;
+ }
+
+ return abs( $element_sum - $digit_sum );
+}
+
+# Test cases
+use Test::More tests => 4;
+is( element_digit_sum( 1, 2, 3, 45 ), 36, 'Test Case 1' );
+is( element_digit_sum( 1, 12, 3 ), 9, 'Test Case 2' );
+is( element_digit_sum( 1, 2, 3, 4 ), 0, 'Test Case 3' );
+is( element_digit_sum( 236, 416, 336, 350 ), 1296, 'Test Case 4' );
+}
+
+1;
diff --git a/challenge-261/lubos-kolouch/perl/ch-2.pl b/challenge-261/lubos-kolouch/perl/ch-2.pl
new file mode 100644
index 0000000000..87733e37b8
--- /dev/null
+++ b/challenge-261/lubos-kolouch/perl/ch-2.pl
@@ -0,0 +1,20 @@
+use strict;
+use warnings;
+
+sub multiply_by_two {
+ my ($ints, $start) = @_;
+ my %hash = map { $_ => 1 } @$ints;
+
+ while (exists $hash{$start}) {
+ $start *= 2;
+ }
+
+ return $start;
+}
+
+# Test cases
+use Test::More tests => 3;
+is(multiply_by_two([5, 3, 6, 1, 12], 3), 24, 'Test Case 1');
+is(multiply_by_two([1, 2, 4, 3], 1), 8, 'Test Case 2');
+is(multiply_by_two([5, 6, 7], 2), 2, 'Test Case 3');
+done_testing();
diff --git a/challenge-261/lubos-kolouch/python/ch-1.py b/challenge-261/lubos-kolouch/python/ch-1.py
new file mode 100644
index 0000000000..aeb39a2a3b
--- /dev/null
+++ b/challenge-261/lubos-kolouch/python/ch-1.py
@@ -0,0 +1,14 @@
+from typing import List
+
+
+def element_digit_sum(ints: List[int]) -> int:
+ element_sum = sum(ints)
+ digit_sum = sum(int(c) for n in ints for c in str(n))
+ return abs(element_sum - digit_sum)
+
+
+# Test cases
+assert element_digit_sum([1, 2, 3, 45]) == 36, "Test Case 1"
+assert element_digit_sum([1, 12, 3]) == 9, "Test Case 2"
+assert element_digit_sum([1, 2, 3, 4]) == 0, "Test Case 3"
+assert element_digit_sum([236, 416, 336, 350]) == 1296, "Test Case 4"
diff --git a/challenge-261/lubos-kolouch/python/ch-2.py b/challenge-261/lubos-kolouch/python/ch-2.py
new file mode 100644
index 0000000000..b1172e99ce
--- /dev/null
+++ b/challenge-261/lubos-kolouch/python/ch-2.py
@@ -0,0 +1,16 @@
+from typing import List
+
+
+def multiply_by_two(ints: List[int], start: int) -> int:
+ ints_set = set(ints)
+
+ while start in ints_set:
+ start *= 2
+
+ return start
+
+
+# Test cases
+assert multiply_by_two([5, 3, 6, 1, 12], 3) == 24, "Test Case 1"
+assert multiply_by_two([1, 2, 4, 3], 1) == 8, "Test Case 2"
+assert multiply_by_two([5, 6, 7], 2) == 2, "Test Case 3"