aboutsummaryrefslogtreecommitdiff
path: root/challenge-320
diff options
context:
space:
mode:
Diffstat (limited to 'challenge-320')
-rw-r--r--challenge-320/0rir/raku/ch-1.raku40
-rw-r--r--challenge-320/0rir/raku/ch-2.raku38
-rw-r--r--challenge-320/adam-russell/blog.txt1
-rw-r--r--challenge-320/adam-russell/blog1.txt1
-rw-r--r--challenge-320/adam-russell/perl/ch-1.pl23
-rw-r--r--challenge-320/adam-russell/perl/ch-2.pl27
-rw-r--r--challenge-320/adam-russell/prolog/ch-1.p27
-rw-r--r--challenge-320/adam-russell/prolog/ch-2.p22
-rw-r--r--challenge-320/arne-sommer/blog.txt1
-rwxr-xr-xchallenge-320/arne-sommer/raku/ch-1.raku11
-rwxr-xr-xchallenge-320/arne-sommer/raku/ch-2.raku15
-rwxr-xr-xchallenge-320/arne-sommer/raku/maximum-count11
-rwxr-xr-xchallenge-320/arne-sommer/raku/sum-difference15
-rw-r--r--challenge-320/barroff/bqn/ch-1.bqn7
-rw-r--r--challenge-320/barroff/bqn/ch-2.bqn9
-rw-r--r--challenge-320/barroff/raku/ch-1.p625
-rw-r--r--challenge-320/barroff/raku/ch-2.p624
-rw-r--r--challenge-320/hvukman/k/320_p1.k7
-rw-r--r--challenge-320/hvukman/k/320_p2.k8
-rw-r--r--challenge-320/hvukman/retro/320_p1.retro12
-rw-r--r--challenge-320/hvukman/retro/320_p2.retro20
-rw-r--r--challenge-320/jeanluc2020/blog-1.txt1
-rw-r--r--challenge-320/jeanluc2020/blog-2.txt1
-rwxr-xr-xchallenge-320/jeanluc2020/perl/ch-1.pl72
-rwxr-xr-xchallenge-320/jeanluc2020/perl/ch-2.pl70
-rw-r--r--challenge-320/jo-37/blog.txt1
-rwxr-xr-xchallenge-320/jo-37/perl/ch-1.pl93
-rwxr-xr-xchallenge-320/jo-37/perl/ch-2.pl92
-rw-r--r--challenge-320/luca-ferrari/blog-1.txt1
-rw-r--r--challenge-320/luca-ferrari/blog-2.txt1
-rw-r--r--challenge-320/luca-ferrari/raku/ch-1.raku12
-rw-r--r--challenge-320/luca-ferrari/raku/ch-2.raku14
-rw-r--r--challenge-320/matthias-muth/README.md251
-rw-r--r--challenge-320/matthias-muth/blog.txt1
-rwxr-xr-xchallenge-320/matthias-muth/perl/ch-1.pl56
-rwxr-xr-xchallenge-320/matthias-muth/perl/ch-2.pl52
-rw-r--r--challenge-320/memark/uiua/ch-1.ua11
-rw-r--r--challenge-320/memark/uiua/ch-2.ua11
-rw-r--r--challenge-320/packy-anderson/README.md2
-rw-r--r--challenge-320/packy-anderson/blog.txt1
-rwxr-xr-xchallenge-320/packy-anderson/elixir/ch-1.exs39
-rwxr-xr-xchallenge-320/packy-anderson/elixir/ch-2.exs40
-rwxr-xr-xchallenge-320/packy-anderson/perl/ch-1.pl37
-rwxr-xr-xchallenge-320/packy-anderson/perl/ch-2.pl34
-rwxr-xr-xchallenge-320/packy-anderson/python/ch-1.py34
-rwxr-xr-xchallenge-320/packy-anderson/python/ch-2.py33
-rwxr-xr-xchallenge-320/packy-anderson/raku/ch-1.raku35
-rwxr-xr-xchallenge-320/packy-anderson/raku/ch-2.raku32
-rwxr-xr-xchallenge-320/perlboy1967/perl/ch-1.pl39
-rwxr-xr-xchallenge-320/perlboy1967/perl/ch-2.pl39
-rw-r--r--challenge-320/robbie-hatley/blog.txt1
-rwxr-xr-xchallenge-320/robbie-hatley/perl/ch-1.pl80
-rwxr-xr-xchallenge-320/robbie-hatley/perl/ch-2.pl80
-rw-r--r--challenge-320/roger-bell-west/blog.txt1
-rw-r--r--challenge-320/sgreen/README.md4
-rw-r--r--challenge-320/sgreen/blog.txt1
-rwxr-xr-xchallenge-320/sgreen/perl/ch-1.pl19
-rwxr-xr-xchallenge-320/sgreen/perl/ch-2.pl30
-rwxr-xr-xchallenge-320/sgreen/python/ch-1.py31
-rwxr-xr-xchallenge-320/sgreen/python/ch-2.py39
-rwxr-xr-xchallenge-320/sgreen/python/test.py21
-rw-r--r--challenge-320/wambash/raku/ch-1.raku19
-rw-r--r--challenge-320/wambash/raku/ch-2.raku19
63 files changed, 1689 insertions, 105 deletions
diff --git a/challenge-320/0rir/raku/ch-1.raku b/challenge-320/0rir/raku/ch-1.raku
new file mode 100644
index 0000000000..c8fc36a119
--- /dev/null
+++ b/challenge-320/0rir/raku/ch-1.raku
@@ -0,0 +1,40 @@
+#!/usr/bin/env raku
+# :vim ft=raku sw=4 expandtab # 🦋 ∅∪∩∋∈∉⊆ ≡ ≢ «␤ » ∴
+use v6.d;
+use Test;
+
+=begin comment
+320-Task 1: Maximum Count Submitted by: Mohammad Sajid Anwar
+You are given an array of integers.
+
+Write a script to return the maximum between the number of positive and negative integers. Zero is neither positive nor negative.
+
+
+Example 1
+Input: @ints = (-3, -2, -1, 1, 2, 3)
+Output: 3
+
+…
+=end comment
+
+my @Test =
+ # in exp
+ (-3, -2, -1, 1, 2, 3), 3,
+ (-2, -1, 0, 0, 1), 2,
+ (1, 2, 3, 4), 4,
+ (0,0), 0,
+ (9,), 1,
+ (-9,), 1,
+;
+plan @Test ÷ 2;
+
+sub task( @a) { max +@a.grep( * > 0), +@a.grep( * < 0) }
+
+for @Test -> @in, $exp {
+ is task( @in), $exp, "{$exp // $exp.^name()} <- @in.raku()";
+}
+done-testing;
+
+my @int = -3, -2, -1, 1, 2, 3;
+
+say qq{\nInput: @int = @int.raku()\nOutput: }, task @int;
diff --git a/challenge-320/0rir/raku/ch-2.raku b/challenge-320/0rir/raku/ch-2.raku
new file mode 100644
index 0000000000..e8d6f180c4
--- /dev/null
+++ b/challenge-320/0rir/raku/ch-2.raku
@@ -0,0 +1,38 @@
+#!/usr/bin/env raku
+# :vim ft=raku sw=4 expandtab # 🦋 ∅∪∩∋∈∉⊆ ≡ ≢ «␤ » ∴
+use v6.d;
+use Test;
+
+=begin comment
+320-2: Sum Difference Submitted by: Mohammad Sajid Anwar
+You are given an array of positive integers.
+
+Write a script to return the absolute difference between digit sum and element sum of the given array.
+
+Example 1
+Input: @ints = (1, 23, 4, 5)
+Output: 18
+…
+=end comment
+
+my @Test =
+ # in exp
+ (1, 23, 4, 5), 18,
+ (1, 2, 3, 4, 5), 0,
+ (1, 2, 34), 27,
+ (), 0,
+ (12,), 9,
+;
+
+plan @Test ÷ 2;
+
+sub task( @a) { ( @a.sum - @a.join.comb.sum ).abs }
+
+for @Test -> @in, $exp {
+ is task( @in), $exp, "{$exp // $exp.^name()} <- @in.raku()";
+}
+done-testing;
+
+my @int = 1, 23, 4, 5;
+
+say qq{\nInput: @int = @int.raku()\nOutput: }, task( @int);
diff --git a/challenge-320/adam-russell/blog.txt b/challenge-320/adam-russell/blog.txt
new file mode 100644
index 0000000000..e567a8bf44
--- /dev/null
+++ b/challenge-320/adam-russell/blog.txt
@@ -0,0 +1 @@
+http://rabbitfarm.com/cgi-bin/blosxom/perl/2025/05/10
diff --git a/challenge-320/adam-russell/blog1.txt b/challenge-320/adam-russell/blog1.txt
new file mode 100644
index 0000000000..8610812f65
--- /dev/null
+++ b/challenge-320/adam-russell/blog1.txt
@@ -0,0 +1 @@
+http://rabbitfarm.com/cgi-bin/blosxom/prolog/2025/05/11
diff --git a/challenge-320/adam-russell/perl/ch-1.pl b/challenge-320/adam-russell/perl/ch-1.pl
new file mode 100644
index 0000000000..40e4e23878
--- /dev/null
+++ b/challenge-320/adam-russell/perl/ch-1.pl
@@ -0,0 +1,23 @@
+
+
+use v5.40;
+
+
+ sub maximum_count{
+ my @numbers = @_;
+
+ my $negatives = 0 + grep {$_ < 0} @numbers;
+
+
+ my $positives = 0 + grep {$_ > 0} @numbers;
+
+ return (sort {$b <=> $a} ($positives, $negatives))[0];
+ }
+
+
+MAIN:{
+ say maximum_count -3, -2, -1, 1, 2, 3;
+ say maximum_count -2, -1, 0, 0, 1;
+ say maximum_count 1, 2, 3, 4;
+}
+
diff --git a/challenge-320/adam-russell/perl/ch-2.pl b/challenge-320/adam-russell/perl/ch-2.pl
new file mode 100644
index 0000000000..432cee8e70
--- /dev/null
+++ b/challenge-320/adam-russell/perl/ch-2.pl
@@ -0,0 +1,27 @@
+
+
+use v5.40;
+
+
+ sub sum_difference{
+ my @numbers = @_;
+
+ my @digits;
+ do{
+ push @digits, split //, $_;
+ } for @numbers;
+ my $digit_sum = unpack(q/%32I*/, pack(q/I*/, @digits));
+
+
+ my $element_sum = unpack(q/%32I*/, pack(q/I*/, @numbers));
+
+ return abs($digit_sum - $element_sum);
+ }
+
+
+MAIN:{
+ say sum_difference 1, 23, 4, 5;
+ say sum_difference 1, 2, 3, 4, 5;
+ say sum_difference 1, 2, 34;
+}
+
diff --git a/challenge-320/adam-russell/prolog/ch-1.p b/challenge-320/adam-russell/prolog/ch-1.p
new file mode 100644
index 0000000000..f8aa1b85c0
--- /dev/null
+++ b/challenge-320/adam-russell/prolog/ch-1.p
@@ -0,0 +1,27 @@
+
+
+ identify_negatives(Number, 1):-
+ Number < 0.
+ identify_negatives(_, 0).
+
+
+ identify_positives(Number, 1):-
+ Number > 0.
+ identify_positives(_, 0).
+
+
+ count_negatives(Numbers, Count):-
+ maplist(identify_negatives, Numbers, Negatives),
+ sum_list(Negatives, Count).
+
+
+ count_positives(Numbers, Count):-
+ maplist(identify_positives, Numbers, Positives),
+ sum_list(Positives, Count).
+
+
+ maximum_count(Numbers, MaximumCount):-
+ count_negatives(Numbers, NegativesCount),
+ count_positives(Numbers, PositivesCount),
+ max_list([NegativesCount, PositivesCount], MaximumCount).
+
diff --git a/challenge-320/adam-russell/prolog/ch-2.p b/challenge-320/adam-russell/prolog/ch-2.p
new file mode 100644
index 0000000000..16b545b640
--- /dev/null
+++ b/challenge-320/adam-russell/prolog/ch-2.p
@@ -0,0 +1,22 @@
+
+
+ char_number(C, N):-
+ number_chars(N, [C]).
+
+
+ element_sum(Numbers, ElementSum):-
+ sum_list(Numbers, ElementSum).
+
+
+ digit_sum(Numbers, DigitSum):-
+ maplist(number_chars, Numbers, Characters),
+ flatten(Characters, CharactersFlattened),
+ maplist(char_number, CharactersFlattened, Digits),
+ sum_list(Digits, DigitSum).
+
+
+ sum_differences(Numbers, Differences):-
+ element_sum(Numbers, ElementSum),
+ digit_sum(Numbers, DigitSum),
+ Differences is abs(DigitSum - ElementSum).
+
diff --git a/challenge-320/arne-sommer/blog.txt b/challenge-320/arne-sommer/blog.txt
new file mode 100644
index 0000000000..2126ca62de
--- /dev/null
+++ b/challenge-320/arne-sommer/blog.txt
@@ -0,0 +1 @@
+https://raku-musings.com/count-difference.html
diff --git a/challenge-320/arne-sommer/raku/ch-1.raku b/challenge-320/arne-sommer/raku/ch-1.raku
new file mode 100755
index 0000000000..c681b0be63
--- /dev/null
+++ b/challenge-320/arne-sommer/raku/ch-1.raku
@@ -0,0 +1,11 @@
+#! /usr/bin/env raku
+
+unit sub MAIN (*@ints where @ints.elems > 1 && all(@ints) ~~ Int,
+ :v(:$verbose));
+
+my $pos = @ints.grep( * > 0 ).elems;
+my $neg = @ints.grep( * < 0 ).elems;
+
+say ": There are $pos positive integers\n: There are $neg negative integers" if $verbose;
+
+say ($pos, $neg).max;
diff --git a/challenge-320/arne-sommer/raku/ch-2.raku b/challenge-320/arne-sommer/raku/ch-2.raku
new file mode 100755
index 0000000000..09a472106b
--- /dev/null
+++ b/challenge-320/arne-sommer/raku/ch-2.raku
@@ -0,0 +1,15 @@
+#! /usr/bin/env raku
+
+unit sub MAIN (*@ints where @ints.elems > 0 && all(@ints) ~~ Int && all(@ints) > 0,
+ :v(:$verbose));
+
+my $elem-sum = @ints.sum;
+my $digit-sum = @ints>>.comb>>.sum.sum;
+
+if $verbose
+{
+ say ": Element sum: $elem-sum";
+ say ": Digit sum: $digit-sum";
+}
+
+say abs($elem-sum - $digit-sum);
diff --git a/challenge-320/arne-sommer/raku/maximum-count b/challenge-320/arne-sommer/raku/maximum-count
new file mode 100755
index 0000000000..c681b0be63
--- /dev/null
+++ b/challenge-320/arne-sommer/raku/maximum-count
@@ -0,0 +1,11 @@
+#! /usr/bin/env raku
+
+unit sub MAIN (*@ints where @ints.elems > 1 && all(@ints) ~~ Int,
+ :v(:$verbose));
+
+my $pos = @ints.grep( * > 0 ).elems;
+my $neg = @ints.grep( * < 0 ).elems;
+
+say ": There are $pos positive integers\n: There are $neg negative integers" if $verbose;
+
+say ($pos, $neg).max;
diff --git a/challenge-320/arne-sommer/raku/sum-difference b/challenge-320/arne-sommer/raku/sum-difference
new file mode 100755
index 0000000000..09a472106b
--- /dev/null
+++ b/challenge-320/arne-sommer/raku/sum-difference
@@ -0,0 +1,15 @@
+#! /usr/bin/env raku
+
+unit sub MAIN (*@ints where @ints.elems > 0 && all(@ints) ~~ Int && all(@ints) > 0,
+ :v(:$verbose));
+
+my $elem-sum = @ints.sum;
+my $digit-sum = @ints>>.comb>>.sum.sum;
+
+if $verbose
+{
+ say ": Element sum: $elem-sum";
+ say ": Digit sum: $digit-sum";
+}
+
+say abs($elem-sum - $digit-sum);
diff --git a/challenge-320/barroff/bqn/ch-1.bqn b/challenge-320/barroff/bqn/ch-1.bqn
new file mode 100644
index 0000000000..6d4c23aaf0
--- /dev/null
+++ b/challenge-320/barroff/bqn/ch-1.bqn
@@ -0,0 +1,7 @@
+#/usr/bin/env bqn
+
+MaximumCount ← (+´0⊸<)⌈(+´0⊸>)
+
+•Show MaximumCount ⟨-3, -2, -1, 1, 2, 3⟩
+•Show MaximumCount ⟨-2, -1, 0, 0, 1⟩
+•Show MaximumCount ⟨1, 2, 3, 4⟩
diff --git a/challenge-320/barroff/bqn/ch-2.bqn b/challenge-320/barroff/bqn/ch-2.bqn
new file mode 100644
index 0000000000..242be9da5b
--- /dev/null
+++ b/challenge-320/barroff/bqn/ch-2.bqn
@@ -0,0 +1,9 @@
+#/usr/bin/env bqn
+
+DigitSum ← { (10|𝕩) + (0⊸<)◶ 0‿𝕊 𝕩(⌊∘÷)10 }
+SumDifference ← +´-(+´ DigitSum¨)
+
+•Show SumDifference 1‿23‿4‿5
+•Show SumDifference 1‿2‿3‿4‿5
+•Show SumDifference 1‿2‿34
+•Show SumDifference 236‿416‿336‿350
diff --git a/challenge-320/barroff/raku/ch-1.p6 b/challenge-320/barroff/raku/ch-1.p6
new file mode 100644
index 0000000000..6a4395921b
--- /dev/null
+++ b/challenge-320/barroff/raku/ch-1.p6
@@ -0,0 +1,25 @@
+#!/usr/bin/env raku
+
+use v6.d;
+
+sub maximum-count(@ints --> Int) {
+ my $p-digits = grep({ $_ > 0 }, @ints).elems;
+ my $n-digits = grep({ $_ < 0 }, @ints).elems;
+ return max($p-digits, $n-digits);
+}
+
+#| Run test cases
+multi sub MAIN('test') {
+ use Test;
+ plan 3;
+
+ is maximum-count([-3, -2, -1, 1, 2, 3]), 3,
+ 'works for "[-3, -2, -1, 1, 2, 3]"';
+ is maximum-count([-2, -1, 0, 0, 1]), 2, 'works for "[-2, -1, 0, 0, 1]"';
+ is maximum-count([1, 2, 3, 4]), 4, 'works for "[1, 2, 3, 4]"';
+}
+
+#| Take user provided numbers like 3, 30, 34, 5, 9
+multi sub MAIN(*@ints) {
+ say maximum-count(@ints);
+}
diff --git a/challenge-320/barroff/raku/ch-2.p6 b/challenge-320/barroff/raku/ch-2.p6
new file mode 100644
index 0000000000..9d7fd3a16c
--- /dev/null
+++ b/challenge-320/barroff/raku/ch-2.p6
@@ -0,0 +1,24 @@
+#!/usr/bin/env raku
+
+use v6.d;
+
+sub sum-difference(@ints --> Int) {
+ my Int $es = sum(@ints);
+ my Int $ds = sum(@ints.join.comb);
+ return abs($es - $ds);
+}
+
+#| Run test cases
+multi sub MAIN('test') {
+ use Test;
+ plan 3;
+
+ is sum-difference([1, 23, 4, 5]), 18, 'works for "[1, 23, 4, 5]"';
+ is sum-difference([1, 2, 3, 4, 5]), 0, 'works for "[1, 2, 3, 4, 5]"';
+ is sum-difference([1, 2, 34]), 27, 'works for "[1, 2, 34]"';
+}
+
+#| Take user provided numbers like 3, 30, 34, 5, 9
+multi sub MAIN(*@ints) {
+ say sum-difference(@ints);
+}
diff --git a/challenge-320/hvukman/k/320_p1.k b/challenge-320/hvukman/k/320_p1.k
new file mode 100644
index 0000000000..be98670e20
--- /dev/null
+++ b/challenge-320/hvukman/k/320_p1.k
@@ -0,0 +1,7 @@
+test: {|/(+/)'(0>x;0<x)}
+inp: -3 -2 -1 1 2 3
+inp2: -2 -1 0 0 1
+inp3: 1 2 3 4
+test inp
+test inp2
+test inp3
diff --git a/challenge-320/hvukman/k/320_p2.k b/challenge-320/hvukman/k/320_p2.k
new file mode 100644
index 0000000000..08c706c213
--- /dev/null
+++ b/challenge-320/hvukman/k/320_p2.k
@@ -0,0 +1,8 @@
+ints: 1 23 4 5
+split: {.'(#x;1)#x }
+abs:{x|-x}
+abs(+/,//split'$ints)-(+/ints)
+ints: 1 2 3 4 5
+abs(+/,//split'$ints)-(+/ints)
+ints: 1 2 34
+abs(+/,//split'$ints)-(+/ints)
diff --git a/challenge-320/hvukman/retro/320_p1.retro b/challenge-320/hvukman/retro/320_p1.retro
new file mode 100644
index 0000000000..e782015472
--- /dev/null
+++ b/challenge-320/hvukman/retro/320_p1.retro
@@ -0,0 +1,12 @@
+Part 1
+bi to get two arrays bigger than zero and less
+than count the length and print the bigger one
+~~~
+'Part_1 s:put nl
+:choosemax (a-n) [ [ #0 lt? ] a:filter a:length ] [ [ #0 gt? ] a:filter a:length ] bi dup-pair gt? [ drop n:put nl ] [ n:put nl ] choose ;
+
+{ #-3 #-2 #-1 #1 #2 #3 } choosemax
+{ #-2 #-1 #0 #0 #1 } choosemax
+{ #1 #2 #3 #4 } choosemax
+
+~~~ \ No newline at end of file
diff --git a/challenge-320/hvukman/retro/320_p2.retro b/challenge-320/hvukman/retro/320_p2.retro
new file mode 100644
index 0000000000..bdab0ecc91
--- /dev/null
+++ b/challenge-320/hvukman/retro/320_p2.retro
@@ -0,0 +1,20 @@
+Part 2
+make number to strings, and then chars to numbers
+put in array and then reduce
+~~~
+'Part_2 s:put nl
+
+:inp1 (-a) { #1 #23 #4 #5 } ;
+:inp2 (-a) { #1 #2 #3 #4 #5 } ;
+:inp3 (-a) { #1 #2 #34 } ;
+:stringtonum (-q) [ [ c:to-number ] s:for-each ] ;
+
+
+:sum (a-n) #0 [ + ] a:reduce ;
+inp1 sum
+{ inp1 [ n:to-string ] a:map stringtonum a:for-each } sum - n:abs n:put nl
+inp2 sum
+{ inp2 [ n:to-string ] a:map stringtonum a:for-each } sum - n:abs n:put nl
+inp3 sum
+{ inp3 [ n:to-string ] a:map stringtonum a:for-each } sum - n:abs n:put nl
+~~~ \ No newline at end of file
diff --git a/challenge-320/jeanluc2020/blog-1.txt b/challenge-320/jeanluc2020/blog-1.txt
new file mode 100644
index 0000000000..305c891870
--- /dev/null
+++ b/challenge-320/jeanluc2020/blog-1.txt
@@ -0,0 +1 @@
+http://gott-gehabt.de/800_wer_wir_sind/thomas/Homepage/Computer/perl/theweeklychallenge-320-1.html
diff --git a/challenge-320/jeanluc2020/blog-2.txt b/challenge-320/jeanluc2020/blog-2.txt
new file mode 100644
index 0000000000..d1550725b1
--- /dev/null
+++ b/challenge-320/jeanluc2020/blog-2.txt
@@ -0,0 +1 @@
+http://gott-gehabt.de/800_wer_wir_sind/thomas/Homepage/Computer/perl/theweeklychallenge-320-2.html
diff --git a/challenge-320/jeanluc2020/perl/ch-1.pl b/challenge-320/jeanluc2020/perl/ch-1.pl
new file mode 100755
index 0000000000..113a336843
--- /dev/null
+++ b/challenge-320/jeanluc2020/perl/ch-1.pl
@@ -0,0 +1,72 @@
+#!/usr/bin/env perl
+# https://theweeklychallenge.org/blog/perl-weekly-challenge-320/#TASK1
+#
+# Task 1: Maximum Count
+# =====================
+#
+# You are given an array of integers.
+#
+# Write a script to return the maximum between the number of positive and
+# negative integers. Zero is neither positive nor negative.
+#
+## Example 1
+##
+## Input: @ints = (-3, -2, -1, 1, 2, 3)
+## Output: 3
+##
+## There are 3 positive integers.
+## There are 3 negative integers.
+## The maximum between 3 and 3 is 3.
+#
+#
+## Example 2
+##
+## Input: @ints = (-2, -1, 0, 0, 1)
+## Output: 2
+##
+## There are 1 positive integers.
+## There are 2 negative integers.
+## The maximum between 2 and 1 is 2.
+#
+#
+## Example 3
+##
+## Input: @ints = (1, 2, 3, 4)
+## Output: 4
+##
+## There are 4 positive integers.
+## There are 0 negative integers.
+## The maximum between 4 and 0 is 4.
+#
+############################################################
+##
+## discussion
+##
+############################################################
+#
+# We just count the positive and the negative integers.
+# Then we look which of these two numbers is bigger.
+
+use v5.36;
+
+maximum_count(-3, -2, -1, 1, 2, 3);
+maximum_count(-2, -1, 0, 0, 1);
+maximum_count(1, 2, 3, 4);
+
+sub maximum_count(@ints) {
+ say "Input: (" . join(", ", @ints) . ")";
+ my $neg = 0;
+ my $pos = 0;
+ foreach my $elem (@ints) {
+ if($elem > 0) {
+ $pos++;
+ } elsif ( $elem < 0 ) {
+ $neg++;
+ }
+ }
+ if($neg > $pos) {
+ say "Output: $neg";
+ } else {
+ say "Output: $pos";
+ }
+}
diff --git a/challenge-320/jeanluc2020/perl/ch-2.pl b/challenge-320/jeanluc2020/perl/ch-2.pl
new file mode 100755
index 0000000000..ad575b21db
--- /dev/null
+++ b/challenge-320/jeanluc2020/perl/ch-2.pl
@@ -0,0 +1,70 @@
+#!/usr/bin/env perl
+# https://theweeklychallenge.org/blog/perl-weekly-challenge-320/#TASK2
+#
+# Task 2: Sum Difference
+# ======================
+#
+# You are given an array of positive integers.
+#
+# Write a script to return the absolute difference between digit sum and
+# element sum of the given array.
+#
+## Example 1
+##
+## Input: @ints = (1, 23, 4, 5)
+## Output: 18
+##
+## Element sum: 1 + 23 + 4 + 5 => 33
+## Digit sum: 1 + 2 + 3 + 4 + 5 => 15
+## Absolute difference: | 33 - 15 | => 18
+#
+#
+## Example 2
+##
+## Input: @ints = (1, 2, 3, 4, 5)
+## Output: 0
+##
+## Element sum: 1 + 2 + 3 + 4 + 5 => 15
+## Digit sum: 1 + 2 + 3 + 4 + 5 => 15
+## Absolute difference: | 15 - 15 | => 0
+#
+#
+## Example 3
+##
+## Input: @ints = (1, 2, 34)