diff options
| -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..6a3c903dcd --- /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"; + } +} + |
