diff options
Diffstat (limited to 'challenge-284')
| -rw-r--r-- | challenge-284/laurent-rosenfeld/blog.txt | 1 | ||||
| -rw-r--r-- | challenge-284/laurent-rosenfeld/perl/ch-1.pl | 17 | ||||
| -rw-r--r-- | challenge-284/laurent-rosenfeld/raku/ch-1.raku | 12 |
3 files changed, 30 insertions, 0 deletions
diff --git a/challenge-284/laurent-rosenfeld/blog.txt b/challenge-284/laurent-rosenfeld/blog.txt new file mode 100644 index 0000000000..509e35ef68 --- /dev/null +++ b/challenge-284/laurent-rosenfeld/blog.txt @@ -0,0 +1 @@ +https://blogs.perl.org/users/laurent_r/2024/08/perl-weekly-challenge-284-lucky-integer.html diff --git a/challenge-284/laurent-rosenfeld/perl/ch-1.pl b/challenge-284/laurent-rosenfeld/perl/ch-1.pl new file mode 100644 index 0000000000..1778ef8a7c --- /dev/null +++ b/challenge-284/laurent-rosenfeld/perl/ch-1.pl @@ -0,0 +1,17 @@ +sub lucky_integer { + my %count; + $count{$_}++ for @_; + my @lucky = grep { $_ == $count{$_} } keys %count; + return -1 if $#lucky == 0; + my $max = shift @lucky; + for my $i (@lucky) { + $max = $i if $i > $max; + } + return $max; +} + +my @tests = ( [<2 2 3 4>], [<1 2 2 3 3 3>], [<1 1 1 3>] ); +for my $test (@tests) { + printf "%-12s => ", "@$test"; + say lucky_integer @$test; +} diff --git a/challenge-284/laurent-rosenfeld/raku/ch-1.raku b/challenge-284/laurent-rosenfeld/raku/ch-1.raku new file mode 100644 index 0000000000..53221483d4 --- /dev/null +++ b/challenge-284/laurent-rosenfeld/raku/ch-1.raku @@ -0,0 +1,12 @@ +sub lucky-integer (@in) { + my $count = @in.Bag; + my @lucky = grep { $_ == $count{$_} }, $count.keys; + return -1 if @lucky.elems == 0; + return @lucky.max; +} + +my @tests = <2 2 3 4>, <1 2 2 3 3 3>, <1 1 1 3>; +for @tests -> @test { + printf "%-12s => ", "@test[]"; + say lucky-integer @test; +} |
