diff options
| -rw-r--r-- | challenge-261/lubos-kolouch/perl/ch-1.pl | 28 | ||||
| -rw-r--r-- | challenge-261/lubos-kolouch/perl/ch-2.pl | 20 | ||||
| -rw-r--r-- | challenge-261/lubos-kolouch/python/ch-1.py | 14 | ||||
| -rw-r--r-- | challenge-261/lubos-kolouch/python/ch-2.py | 16 |
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" |
