aboutsummaryrefslogtreecommitdiff
path: root/challenge-261
diff options
context:
space:
mode:
authorMohammad Sajid Anwar <Mohammad.Anwar@yahoo.com>2024-03-24 16:13:00 +0000
committerGitHub <noreply@github.com>2024-03-24 16:13:00 +0000
commit9adf9adc205079419564c1685f7ca9c8d15a119c (patch)
treeaa92ff70d51e672b117d78e3d8b8060d3519b5ef /challenge-261
parentc0ba80d4ac88c85c1629b1a472533f0ef4e2a91b (diff)
parentf2d94fa5544963a6f7ffe88a7bd5327907dcdddd (diff)
downloadperlweeklychallenge-club-9adf9adc205079419564c1685f7ca9c8d15a119c.tar.gz
perlweeklychallenge-club-9adf9adc205079419564c1685f7ca9c8d15a119c.tar.bz2
perlweeklychallenge-club-9adf9adc205079419564c1685f7ca9c8d15a119c.zip
Merge pull request #9802 from LubosKolouch/master
Challenge 261 LK Perl Python
Diffstat (limited to 'challenge-261')
-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"