From f2fd51a80fb38eeba750758655779b3c42f4d0f1 Mon Sep 17 00:00:00 2001 From: Lubos Kolouch Date: Sat, 12 Feb 2022 14:31:56 +0100 Subject: Challenge 151 LK Task 2 Perl --- challenge-151/lubos-kolouch/perl/ch-2.pl | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 challenge-151/lubos-kolouch/perl/ch-2.pl 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; -- cgit