diff options
| author | CY Fung <fungcheokyin@gmail.com> | 2022-12-12 16:56:00 +0800 |
|---|---|---|
| committer | CY Fung <fungcheokyin@gmail.com> | 2022-12-12 16:56:00 +0800 |
| commit | 2ec316feee36e9a142149cc1d92bc98cbf6afc64 (patch) | |
| tree | 22188e8cfcfad99fb34f07c4f68f6ef9eea9a2d7 | |
| parent | bcaa98c386bca18260843a58f9d21a82a624fc52 (diff) | |
| download | perlweeklychallenge-club-2ec316feee36e9a142149cc1d92bc98cbf6afc64.tar.gz perlweeklychallenge-club-2ec316feee36e9a142149cc1d92bc98cbf6afc64.tar.bz2 perlweeklychallenge-club-2ec316feee36e9a142149cc1d92bc98cbf6afc64.zip | |
Week 195
| -rw-r--r-- | challenge-195/cheok-yin-fung/perl/ch-1.pl | 19 | ||||
| -rw-r--r-- | challenge-195/cheok-yin-fung/perl/ch-2.pl | 18 |
2 files changed, 37 insertions, 0 deletions
diff --git a/challenge-195/cheok-yin-fung/perl/ch-1.pl b/challenge-195/cheok-yin-fung/perl/ch-1.pl new file mode 100644 index 0000000000..96efc1eb43 --- /dev/null +++ b/challenge-195/cheok-yin-fung/perl/ch-1.pl @@ -0,0 +1,19 @@ +# The Weekly Challenge 195 +# Task 1 Special Integers +use v5.30.0; +use warnings; +use List::Util qw/uniqint/; + +sub si { + my $n = $_[0]; + my $ans = 0; + for my $i (1..$n) { + $ans++ if length $i == scalar uniqint split "", $i; + } + return $ans; +} + +use Test::More tests=>2; +ok si(15) == 14; +ok si(35) == 32; + diff --git a/challenge-195/cheok-yin-fung/perl/ch-2.pl b/challenge-195/cheok-yin-fung/perl/ch-2.pl new file mode 100644 index 0000000000..e8eab81d20 --- /dev/null +++ b/challenge-195/cheok-yin-fung/perl/ch-2.pl @@ -0,0 +1,18 @@ +# The Weekly Challenge 195 +# Task 2 Most Frequent Even +use v5.30.0; +use warnings; +use List::Util qw/max min/; +sub mfe { + my @even_list = grep {$_ % 2 == 0} @_; + return -1 if scalar @even_list == 0; + my %freq; + $freq{$_}++ for @even_list; + my $max = max values %freq; + return min grep { $freq{$_} == $max } keys %freq; +} + +use Test::More tests=>3; +ok mfe(1,1,2,6,2) == 2; +ok mfe(1,3,5,7) == -1; +ok mfe(6,4,4,6,1) == 4; |
