diff options
| author | Andrew Schneider <atschneider@temple.edu> | 2024-09-15 17:28:38 -0400 |
|---|---|---|
| committer | Andrew Schneider <atschneider@temple.edu> | 2024-09-15 17:28:38 -0400 |
| commit | f85774ec9a436c3c4fc4183525cd0081bb35d6a8 (patch) | |
| tree | 0c0d155af238cf7f74dc2f9fd0cfbf484c267250 | |
| parent | bde33cd4c617b5f4908a051a5fa51e75ffa68fdd (diff) | |
| download | perlweeklychallenge-club-f85774ec9a436c3c4fc4183525cd0081bb35d6a8.tar.gz perlweeklychallenge-club-f85774ec9a436c3c4fc4183525cd0081bb35d6a8.tar.bz2 perlweeklychallenge-club-f85774ec9a436c3c4fc4183525cd0081bb35d6a8.zip | |
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( @$_ ); +} |
