diff options
| author | Matthias Muth <matthias.muth@gmx.de> | 2023-06-05 00:44:19 +0200 |
|---|---|---|
| committer | Matthias Muth <matthias.muth@gmx.de> | 2023-06-05 00:44:19 +0200 |
| commit | d054aa235c76549c8cbe6d4c8e7cb4dd2c2d6e8e (patch) | |
| tree | cd2605a781de98686a08004fda8df008fadf8202 /challenge-219/matthias-muth/perl/ch-2.pl | |
| parent | 27b599557a1a4cb031a9550f81bbcb0982e15327 (diff) | |
| download | perlweeklychallenge-club-d054aa235c76549c8cbe6d4c8e7cb4dd2c2d6e8e.tar.gz perlweeklychallenge-club-d054aa235c76549c8cbe6d4c8e7cb4dd2c2d6e8e.tar.bz2 perlweeklychallenge-club-d054aa235c76549c8cbe6d4c8e7cb4dd2c2d6e8e.zip | |
Challenge 219 solutions in Perl by Matthias Muth
Diffstat (limited to 'challenge-219/matthias-muth/perl/ch-2.pl')
| -rwxr-xr-x | challenge-219/matthias-muth/perl/ch-2.pl | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/challenge-219/matthias-muth/perl/ch-2.pl b/challenge-219/matthias-muth/perl/ch-2.pl new file mode 100755 index 0000000000..7b3234b92d --- /dev/null +++ b/challenge-219/matthias-muth/perl/ch-2.pl @@ -0,0 +1,36 @@ +#!/usr/bin/env perl +# +# The Weekly Challenge - Perl & Raku +# (https://theweeklychallenge.org) +# +# Challenge 219 Task 2: Travel Expenditure +# +# Perl solution by Matthias Muth. +# + +use strict; +use warnings; +use feature 'say'; + +use lib '.'; +use TestExtractor; + +use List::Util qw( min ); + +my @durations = ( 1, 7, 30 ); + +sub travel_expenditure { + my ( $costs, $days ) = @_; + return 0 + if @$days == 0; + return min( + map { + my $duration = $durations[$_]; + $costs->[$_] + + travel_expenditure( $costs, + [ grep $_ >= $days->[0] + $duration, @$days ] ); + } 0..$#{$costs} + ); +} + +run_tests; |
