diff options
| author | Mohammad Sajid Anwar <Mohammad.Anwar@yahoo.com> | 2023-11-13 17:29:17 +0000 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-11-13 17:29:17 +0000 |
| commit | 787d559832a2180ebd0c4ae7275cb99669cf34a3 (patch) | |
| tree | 21d0f3d09714f9623b03b74530b2f4d97176121c | |
| parent | 3197a1d6242618b222c802647c514341b90d6a9b (diff) | |
| parent | 2f1d27e3fdca63eebd875960c6d9f07af5b4d782 (diff) | |
| download | perlweeklychallenge-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.pl | 26 | ||||
| -rw-r--r-- | challenge-243/kjetillll/perl/ch-2.pl | 26 |
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"; + } +} + |
