diff options
| author | Mohammad Sajid Anwar <Mohammad.Anwar@yahoo.com> | 2024-08-26 23:39:25 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-08-26 23:39:25 +0100 |
| commit | 35ed12dc58637c1183357ff7a7ed75498c68c8b6 (patch) | |
| tree | 82409bc0df25c409dbc645290449492af30ab749 | |
| parent | ca254bf2754bcd6602cd190c4497529c3aa7ff74 (diff) | |
| parent | f555001a1eb274defde54947ef58881b4b0b5831 (diff) | |
| download | perlweeklychallenge-club-35ed12dc58637c1183357ff7a7ed75498c68c8b6.tar.gz perlweeklychallenge-club-35ed12dc58637c1183357ff7a7ed75498c68c8b6.tar.bz2 perlweeklychallenge-club-35ed12dc58637c1183357ff7a7ed75498c68c8b6.zip | |
Merge pull request #10709 from kjetillll/challenge-284-kjetillll
https://theweeklychallenge.org/blog/perl-weekly-challenge-284/
| -rw-r--r-- | challenge-284/kjetillll/perl/ch-1.pl | 13 | ||||
| -rw-r--r-- | challenge-284/kjetillll/perl/ch-2.pl | 12 |
2 files changed, 25 insertions, 0 deletions
diff --git a/challenge-284/kjetillll/perl/ch-1.pl b/challenge-284/kjetillll/perl/ch-1.pl new file mode 100644 index 0000000000..cd1a605a74 --- /dev/null +++ b/challenge-284/kjetillll/perl/ch-1.pl @@ -0,0 +1,13 @@ +use strict; use warnings; use List::Util 'max'; use Test::More tests=>3; + + +sub lucky_integer { + my %freq; $freq{$_}++ for @_; + max -1, grep $_ == $freq{$_}, keys %freq +} + + +is lucky_integer(2, 2, 3, 4) => 2; +is lucky_integer(1, 2, 2, 3, 3, 3) => 3; +is lucky_integer(1, 1, 1, 3) => -1; + diff --git a/challenge-284/kjetillll/perl/ch-2.pl b/challenge-284/kjetillll/perl/ch-2.pl new file mode 100644 index 0000000000..97dd58d7a3 --- /dev/null +++ b/challenge-284/kjetillll/perl/ch-2.pl @@ -0,0 +1,12 @@ +use strict; use warnings; use List::Util 'max'; use Test::More tests=>3; + + +sub relative_sort { + my( $list1, $list2 ) = @_; + my %rank = map { $$list2[$_] => $_ } 0 .. $#$list2; + sort { ( $rank{$a} // 9e9 ) <=> ( $rank{$b} // 9e9 ) or $a <=> $b } @$list1; +} + +is_deeply [ relative_sort( [2,3,9,3,1,4,6,7,2,8,5], [2,1,4,3,5,6] ) ] => [2,2,1,4,3,3,5,6,7,8,9]; +is_deeply [ relative_sort( [3,3,4,6,2,4,2,1,3], [1,3,2] ) ] => [1,3,3,3,2,2,4,4,6]; +is_deeply [ relative_sort( [3,0,5,0,2,1,4,1,1], [1,0,3,2] ) ] => [1,1,1,0,0,3,2,4,5]; |
