aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMohammad Sajid Anwar <Mohammad.Anwar@yahoo.com>2025-06-15 21:21:48 +0100
committerGitHub <noreply@github.com>2025-06-15 21:21:48 +0100
commitdebca5b8e7261ce86883bdce2ba0ccddd07247e2 (patch)
tree12a4f7a82fc480a01557e2f8f9b08081b65d70fc
parent5e0c23f722ebc2a6b24c69a4522a126d5d1d90a6 (diff)
parent69d426910c0507f7c801985d3440f88a4bfd9145 (diff)
downloadperlweeklychallenge-club-debca5b8e7261ce86883bdce2ba0ccddd07247e2.tar.gz
perlweeklychallenge-club-debca5b8e7261ce86883bdce2ba0ccddd07247e2.tar.bz2
perlweeklychallenge-club-debca5b8e7261ce86883bdce2ba0ccddd07247e2.zip
Merge pull request #12184 from kjetillll/challenge-325-kjetillll
https://theweeklychallenge.org/blog/perl-weekly-challenge-325/
-rw-r--r--challenge-325/kjetillll/perl/ch-1.pl18
-rw-r--r--challenge-325/kjetillll/perl/ch-2.pl10
2 files changed, 28 insertions, 0 deletions
diff --git a/challenge-325/kjetillll/perl/ch-1.pl b/challenge-325/kjetillll/perl/ch-1.pl
new file mode 100644
index 0000000000..86a9608542
--- /dev/null
+++ b/challenge-325/kjetillll/perl/ch-1.pl
@@ -0,0 +1,18 @@
+sub f {
+ my($c, $max) = (0, 0);
+ for(@_){
+ $c = $_ ? $c+1 : 0;
+ $max = $c if $c > $max;
+ }
+ $max
+}
+
+sub f2 {
+ (sort {$b <=> $a } map length, join('',@_) =~ /1+/g )[0]
+}
+
+for my $f ( \&f, \&f2 ) {
+ print $f->(0, 1, 1, 0, 1, 1, 1) == 3 ? "ok\n" : "err\n";
+ print $f->(0, 0, 0, 0) == 0 ? "ok\n" : "err\n";
+ print $f->(1, 0, 1, 0, 1, 1) == 2 ? "ok\n" : "err\n";
+}
diff --git a/challenge-325/kjetillll/perl/ch-2.pl b/challenge-325/kjetillll/perl/ch-2.pl
new file mode 100644
index 0000000000..7fed48a5c0
--- /dev/null
+++ b/challenge-325/kjetillll/perl/ch-2.pl
@@ -0,0 +1,10 @@
+use List::Util 'first';
+
+sub f {
+ my $price_1st = shift // return;
+ $price_1st - ( first { $_ <= $price_1st } @_ ), f(@_)
+}
+
+print join(',', f(8, 4, 6, 2, 3) ) eq '4,2,4,2,3' ? "ok\n" : "err\n";
+print join(',', f(1, 2, 3, 4, 5) ) eq '1,2,3,4,5' ? "ok\n" : "err\n";
+print join(',', f(7, 1, 1, 5) ) eq '6,0,1,5' ? "ok\n" : "err\n";