aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLubos Kolouch <lubos@kolouch.net>2022-02-12 14:31:56 +0100
committerLubos Kolouch <lubos@kolouch.net>2022-02-12 14:31:56 +0100
commitf2fd51a80fb38eeba750758655779b3c42f4d0f1 (patch)
tree640b28dfa3361b167b71a197e684903e1f30f97d
parent00bcd189253a7cf50460828f2693bdeba4e42bef (diff)
downloadperlweeklychallenge-club-f2fd51a80fb38eeba750758655779b3c42f4d0f1.tar.gz
perlweeklychallenge-club-f2fd51a80fb38eeba750758655779b3c42f4d0f1.tar.bz2
perlweeklychallenge-club-f2fd51a80fb38eeba750758655779b3c42f4d0f1.zip
Challenge 151 LK Task 2 Perl
-rw-r--r--challenge-151/lubos-kolouch/perl/ch-2.pl31
1 files changed, 31 insertions, 0 deletions
diff --git a/challenge-151/lubos-kolouch/perl/ch-2.pl b/challenge-151/lubos-kolouch/perl/ch-2.pl
new file mode 100644
index 0000000000..2f7f7b93f1
--- /dev/null
+++ b/challenge-151/lubos-kolouch/perl/ch-2.pl
@@ -0,0 +1,31 @@
+use strict;
+use warnings;
+use feature qw/say/;
+
+my %cache;
+
+sub get_houses_max {
+ my @houses = @_;
+
+ return $cache{@houses} if $cache{@houses};
+
+ my $max_value = 0;
+ my $house_index = 0;
+ for my $house (@houses[2..@houses-1]) {
+ my $next_houses_values = get_houses_max(@houses[2+$house_index..@houses-1]);
+ $max_value = $next_houses_values if $next_houses_values > $max_value;
+ $house_index++;
+ }
+
+ $cache{@houses} = $houses[0] + $max_value;
+ return $houses[0] + $max_value;
+
+}
+
+use Test::More;
+
+is(get_houses_max((2,4,5)), 7);
+undef %cache;
+is(get_houses_max((4, 2, 3, 6, 5, 3)), 13);
+
+done_testing;