aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMohammad Sajid Anwar <Mohammad.Anwar@yahoo.com>2024-09-15 22:30:12 +0100
committerGitHub <noreply@github.com>2024-09-15 22:30:12 +0100
commit3820c9cd856e8bda1bfe8c13cc8d093349f7ef6b (patch)
tree9acb0b169d86c4d82996ac81b9ba0360d648df39
parent60e856e18487b79ba8ec76df3942720554633e05 (diff)
parentf85774ec9a436c3c4fc4183525cd0081bb35d6a8 (diff)
downloadperlweeklychallenge-club-3820c9cd856e8bda1bfe8c13cc8d093349f7ef6b.tar.gz
perlweeklychallenge-club-3820c9cd856e8bda1bfe8c13cc8d093349f7ef6b.tar.bz2
perlweeklychallenge-club-3820c9cd856e8bda1bfe8c13cc8d093349f7ef6b.zip
Merge pull request #10847 from atschneid/master
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( @$_ );
+}