diff options
| author | Mohammad Sajid Anwar <Mohammad.Anwar@yahoo.com> | 2025-06-15 21:21:48 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-06-15 21:21:48 +0100 |
| commit | debca5b8e7261ce86883bdce2ba0ccddd07247e2 (patch) | |
| tree | 12a4f7a82fc480a01557e2f8f9b08081b65d70fc | |
| parent | 5e0c23f722ebc2a6b24c69a4522a126d5d1d90a6 (diff) | |
| parent | 69d426910c0507f7c801985d3440f88a4bfd9145 (diff) | |
| download | perlweeklychallenge-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.pl | 18 | ||||
| -rw-r--r-- | challenge-325/kjetillll/perl/ch-2.pl | 10 |
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"; |
