aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMohammad Sajid Anwar <Mohammad.Anwar@yahoo.com>2024-08-26 23:39:25 +0100
committerGitHub <noreply@github.com>2024-08-26 23:39:25 +0100
commit35ed12dc58637c1183357ff7a7ed75498c68c8b6 (patch)
tree82409bc0df25c409dbc645290449492af30ab749
parentca254bf2754bcd6602cd190c4497529c3aa7ff74 (diff)
parentf555001a1eb274defde54947ef58881b4b0b5831 (diff)
downloadperlweeklychallenge-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.pl13
-rw-r--r--challenge-284/kjetillll/perl/ch-2.pl12
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];