aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMohammad Sajid Anwar <Mohammad.Anwar@yahoo.com>2023-11-13 17:29:17 +0000
committerGitHub <noreply@github.com>2023-11-13 17:29:17 +0000
commit787d559832a2180ebd0c4ae7275cb99669cf34a3 (patch)
tree21d0f3d09714f9623b03b74530b2f4d97176121c
parent3197a1d6242618b222c802647c514341b90d6a9b (diff)
parent2f1d27e3fdca63eebd875960c6d9f07af5b4d782 (diff)
downloadperlweeklychallenge-club-787d559832a2180ebd0c4ae7275cb99669cf34a3.tar.gz
perlweeklychallenge-club-787d559832a2180ebd0c4ae7275cb99669cf34a3.tar.bz2
perlweeklychallenge-club-787d559832a2180ebd0c4ae7275cb99669cf34a3.zip
Merge pull request #9057 from kjetillll/challenge-243-kjetillll
Challenge 243 kjetillll
-rw-r--r--challenge-243/kjetillll/perl/ch-1.pl26
-rw-r--r--challenge-243/kjetillll/perl/ch-2.pl26
2 files changed, 52 insertions, 0 deletions
diff --git a/challenge-243/kjetillll/perl/ch-1.pl b/challenge-243/kjetillll/perl/ch-1.pl
new file mode 100644
index 0000000000..e625e158bc
--- /dev/null
+++ b/challenge-243/kjetillll/perl/ch-1.pl
@@ -0,0 +1,26 @@
+use strict; use warnings;
+
+@ARGV ? run_args(@ARGV)
+ : run_tests();
+
+sub count_reverse_pairs {
+ my $indexes=join',',0..$#_;
+ scalar
+ grep { my($i,$j)=split/_/; $i<$j and $_[$i]>2*$_[$j] }
+ glob "{$indexes}_{$indexes}"
+}
+
+sub run_args { print count_reverse_pairs(@_) }
+
+sub run_tests {
+ for my $test (
+ [ [1,3,2,3,1] => 2 ],
+ [ [2,4,3,5,1] => 3 ],
+ ){
+ my($input,$expected)=@$test;
+ my $got = count_reverse_pairs(@$input);
+ print $expected == $got ? 'ok' : '***NOT OK';
+ print " input: @$input expected: $expected got: $got\n";
+ }
+}
+
diff --git a/challenge-243/kjetillll/perl/ch-2.pl b/challenge-243/kjetillll/perl/ch-2.pl
new file mode 100644
index 0000000000..1f544f85d2
--- /dev/null
+++ b/challenge-243/kjetillll/perl/ch-2.pl
@@ -0,0 +1,26 @@
+use strict; use warnings;
+
+@ARGV ? run_args(@ARGV)
+ : run_tests();
+
+sub sum_of_floors {
+ eval
+ join '+',
+ map { /_/; int($`/$') }
+ glob "{@_}_{@_}" =~ s/ /,/gr
+}
+
+sub run_args { print sum_of_floors(@_) }
+
+sub run_tests {
+ for my $test (
+ [ [2,5,9] => 10 ],
+ [ [7,7,7,7,7,7,7] => 49 ],
+ ){
+ my($input,$expected)=@$test;
+ my $got = sum_of_floors(@$input);
+ print $expected == $got ? 'ok' : '***NOT OK';
+ print " input: @$input expected: $expected got: $got\n";
+ }
+}
+