diff options
| author | Lubos Kolouch <lubos@kolouch.net> | 2022-02-12 14:31:56 +0100 |
|---|---|---|
| committer | Lubos Kolouch <lubos@kolouch.net> | 2022-02-12 14:31:56 +0100 |
| commit | f2fd51a80fb38eeba750758655779b3c42f4d0f1 (patch) | |
| tree | 640b28dfa3361b167b71a197e684903e1f30f97d | |
| parent | 00bcd189253a7cf50460828f2693bdeba4e42bef (diff) | |
| download | perlweeklychallenge-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.pl | 31 |
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; |
