aboutsummaryrefslogtreecommitdiff
path: root/challenge-219/matthias-muth/perl/ch-2.pl
diff options
context:
space:
mode:
authorMatthias Muth <matthias.muth@gmx.de>2023-06-05 00:44:19 +0200
committerMatthias Muth <matthias.muth@gmx.de>2023-06-05 00:44:19 +0200
commitd054aa235c76549c8cbe6d4c8e7cb4dd2c2d6e8e (patch)
treecd2605a781de98686a08004fda8df008fadf8202 /challenge-219/matthias-muth/perl/ch-2.pl
parent27b599557a1a4cb031a9550f81bbcb0982e15327 (diff)
downloadperlweeklychallenge-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-xchallenge-219/matthias-muth/perl/ch-2.pl36
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;