diff options
| author | Mohammad Sajid Anwar <Mohammad.Anwar@yahoo.com> | 2024-09-15 22:30:12 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-09-15 22:30:12 +0100 |
| commit | 3820c9cd856e8bda1bfe8c13cc8d093349f7ef6b (patch) | |
| tree | 9acb0b169d86c4d82996ac81b9ba0360d648df39 | |
| parent | 60e856e18487b79ba8ec76df3942720554633e05 (diff) | |
| parent | f85774ec9a436c3c4fc4183525cd0081bb35d6a8 (diff) | |
| download | perlweeklychallenge-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.md | 8 | ||||
| -rw-r--r-- | challenge-286/atschneid/ch-1.pl | 17 | ||||
| -rw-r--r-- | challenge-286/atschneid/ch-2.pl | 31 |
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( @$_ ); +} |
