aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authordrbaggy <js5@sanger.ac.uk>2022-02-15 17:23:29 +0000
committerdrbaggy <js5@sanger.ac.uk>2022-02-15 17:23:29 +0000
commita49da719c0b0a3580168798f7785eb814378e226 (patch)
tree1d51f3b5b712a3d3566ef84311fcd6c95802f83a
parent1d943d93e690408fa34124bbcecf0f908eff5c1d (diff)
downloadperlweeklychallenge-club-a49da719c0b0a3580168798f7785eb814378e226.tar.gz
perlweeklychallenge-club-a49da719c0b0a3580168798f7785eb814378e226.tar.bz2
perlweeklychallenge-club-a49da719c0b0a3580168798f7785eb814378e226.zip
put on one line to make more readable
-rw-r--r--challenge-152/james-smith/perl/ch-1.pl13
1 files changed, 4 insertions, 9 deletions
diff --git a/challenge-152/james-smith/perl/ch-1.pl b/challenge-152/james-smith/perl/ch-1.pl
index 8b013c4ca8..d55da7329f 100644
--- a/challenge-152/james-smith/perl/ch-1.pl
+++ b/challenge-152/james-smith/perl/ch-1.pl
@@ -21,20 +21,15 @@ is( min_path_anydir_total( $_->[0] ), $_->[2] ) foreach @TESTS;
done_testing();
sub min_path {
- my @p = map { [0,[]] } 0,my @t = reverse @{$_[0]};
- @p = map {
- $p[0][0] < $p[1][0]
- ? [ $_+$p[0][0], [ $_, @{$p[0][1]} ] ]
- : [ $_+$p[1][0], [ $_, @{$p[1][1]} ] ],
- (shift @p) x 0
- } @{$_} for @t;
+ my @p = ( [0,[]] ) x (1 + @{$_[0]});
+ @p = map { $p[0][0] < $p[1][0] ? [ $_+$p[0][0], [ $_, @{$p[0][1]} ] ] : [ $_+$p[1][0], [ $_, @{$p[1][1]} ] ], (shift @p) x 0 } @{$_} for reverse @{$_[0]};
say sprintf 'Minimum value %d: [ %s ]', $p[0][0], join ', ', @{$p[0][1]};
$p[0][0];
}
sub min_path_total {
- my @p = map { 0 } 0, my @t = reverse @{$_[0]};
- @p = map { $_ + $p[ $p[0] < $p[1] ? 0 : 1 ], (shift @p)x 0 } @{$_} for @t;
+ my @p = (0) x (1+@{$_[0]});
+ @p = map { $_ + $p[$p[0]<$p[1]?0:1], (shift @p)x 0 } @{$_} for reverse @{$_[0]};
$p[0];
}