aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Schneider <atschneider@temple.edu>2024-09-15 17:28:38 -0400
committerAndrew Schneider <atschneider@temple.edu>2024-09-15 17:28:38 -0400
commitf85774ec9a436c3c4fc4183525cd0081bb35d6a8 (patch)
tree0c0d155af238cf7f74dc2f9fd0cfbf484c267250
parentbde33cd4c617b5f4908a051a5fa51e75ffa68fdd (diff)
downloadperlweeklychallenge-club-f85774ec9a436c3c4fc4183525cd0081bb35d6a8.tar.gz
perlweeklychallenge-club-f85774ec9a436c3c4fc4183525cd0081bb35d6a8.tar.bz2
perlweeklychallenge-club-f85774ec9a436c3c4fc4183525cd0081bb35d6a8.zip
initial PWC 286 commit
-rw-r--r--challenge-286/atschneid/README.md8
-rw-r--r--challenge-286/atschneid/ch-1.pl17
-rw-r--r--challenge-286/atschneid/ch-2.pl31
3 files changed, 52 insertions, 4 deletions
diff --git a/challenge-286/atschneid/README.md b/challenge-286/atschneid/README.md
index 56bf100b0a..0e7a1e1a37 100644
--- a/challenge-286/atschneid/README.md
+++ b/challenge-286/atschneid/README.md
@@ -1,9 +1,9 @@
-# PWC 285
+# PWC 286
-**Challenge 285 solutions by Andrew Schneider**
+**Challenge 286 solutions by Andrew Schneider**
-[PWC 285](https://theweeklychallenge.org/blog/perl-weekly-challenge-285/)
+[PWC 286](https://theweeklychallenge.org/blog/perl-weekly-challenge-286/)
-Dyanmic programming for challenge 2. Whoa!
+Good stuff this week
Thanks for the challenges!
diff --git a/challenge-286/atschneid/ch-1.pl b/challenge-286/atschneid/ch-1.pl
new file mode 100644
index 0000000000..f2a45ea7de
--- /dev/null
+++ b/challenge-286/atschneid/ch-1.pl
@@ -0,0 +1,17 @@
+use warnings;
+use strict;
+
+use v5.38;
+
+sub random_word {
+ open( my $fh, '<', 'ch-1.pl' );
+ my @words;
+ for (<$fh>) {
+ chomp;
+ grep { push @words, $_ } split ' ', $_;
+ }
+ my $idx = int( rand( scalar @words ) );
+ say $words[ $idx ];
+}
+
+random_word();
diff --git a/challenge-286/atschneid/ch-2.pl b/challenge-286/atschneid/ch-2.pl
new file mode 100644
index 0000000000..b3c6ad7fa2
--- /dev/null
+++ b/challenge-286/atschneid/ch-2.pl
@@ -0,0 +1,31 @@
+use warnings;
+use strict;
+
+use v5.38;
+
+use List::Util qw( min max );
+
+sub find_min_max( @arr ) {
+ my $counter = 0;
+ while ( $#arr > 0 ) {
+ my @new_arr;
+ for (my $idx = 1; $idx <= $#arr; $idx += 2) {
+ push @new_arr, ( $counter % 2 ) ?
+ max( $arr[$idx], $arr[$idx-1] ) :
+ min( $arr[$idx], $arr[$idx-1] );
+ ++$counter;
+ }
+ @arr = @new_arr;
+ }
+ return $arr[0];
+}
+
+my @inputs = (
+ [2, 1, 4, 5, 6, 3, 0, 2],
+ [0, 5, 3, 2],
+ [9, 2, 1, 4, 5, 6, 0, 7, 3, 1, 3, 5, 7, 9, 0, 8],
+ );
+for (@inputs) {
+ say ( join ', ', @$_ );
+ say ' => ' . find_min_max( @$_ );
+}