diff options
| author | Mohammad S Anwar <mohammad.anwar@yahoo.com> | 2023-02-19 21:11:56 +0000 |
|---|---|---|
| committer | Mohammad S Anwar <mohammad.anwar@yahoo.com> | 2023-02-19 21:11:56 +0000 |
| commit | 7e62551d511dfa6a26b7d6797929ae0a865f77bf (patch) | |
| tree | 68853783818fb329a955ed5c6144d5b95dde3400 /challenge-204 | |
| parent | 4cb80ee66440819fcdb966c92cf6a3350e43c75e (diff) | |
| download | perlweeklychallenge-club-7e62551d511dfa6a26b7d6797929ae0a865f77bf.tar.gz perlweeklychallenge-club-7e62551d511dfa6a26b7d6797929ae0a865f77bf.tar.bz2 perlweeklychallenge-club-7e62551d511dfa6a26b7d6797929ae0a865f77bf.zip | |
- Added solutions by Jan Krnavek.
- Added solutions by Tyler Bird.
- Added solutions by Bob Lied.
Diffstat (limited to 'challenge-204')
| -rw-r--r-- | challenge-204/tyler-bird/README | 1 | ||||
| -rw-r--r-- | challenge-204/tyler-bird/perl/ch-1.pl | 39 | ||||
| -rw-r--r-- | challenge-204/tyler-bird/perl/ch-2.pl | 65 |
3 files changed, 105 insertions, 0 deletions
diff --git a/challenge-204/tyler-bird/README b/challenge-204/tyler-bird/README new file mode 100644 index 0000000000..a8a20c7cb8 --- /dev/null +++ b/challenge-204/tyler-bird/README @@ -0,0 +1 @@ +Solutions by Tyler Bird. diff --git a/challenge-204/tyler-bird/perl/ch-1.pl b/challenge-204/tyler-bird/perl/ch-1.pl new file mode 100644 index 0000000000..a96dd270ac --- /dev/null +++ b/challenge-204/tyler-bird/perl/ch-1.pl @@ -0,0 +1,39 @@ +package main; + +use strict; +use warnings; + +sub monotonic +{ + my @values = @_; + + my $current_value = shift(@values); + + my $was_increase = 0; + my $was_decrease = 0; + + foreach my $value ( @values ) { + if($value > $current_value && $was_decrease) { + return 0; + } elsif($value < $current_value && $was_increase) { + return 0; + } else { + if($value > $current_value ) { + $was_increase = 1; + } elsif($value < $current_value) { + $was_decrease = 1; + } + + $current_value = $value; + } + } + + return 1; +} + +print monotonic(1,2,2,3) . "\n"; +print monotonic(1,3,2) . "\n"; +print monotonic(6,5,5,4) . "\n"; + + +1; diff --git a/challenge-204/tyler-bird/perl/ch-2.pl b/challenge-204/tyler-bird/perl/ch-2.pl new file mode 100644 index 0000000000..94321d1be8 --- /dev/null +++ b/challenge-204/tyler-bird/perl/ch-2.pl @@ -0,0 +1,65 @@ + package main; + +use strict; +use warnings; +use Data::Dumper; + +my $original_matrix = [ + [1,2], + [3,4] +]; + +print Dumper( matrixReshape($original_matrix, 1, 4) ); + +$original_matrix = [ + [1,2,3], + [4,5,6] +]; + +print Dumper( matrixReshape($original_matrix, 3, 2 ) ); + +sub matrixReshape +{ + my ($matrix_aref, $rows, $columns) = @_; + + my $current_rows = scalar(@{$matrix_aref}); + + if($current_rows == 0) { + return $matrix_aref; + } + + my $current_columns = scalar( @{$matrix_aref->[0]} ); + + if($current_columns == 0) { + return $matrix_aref; + } + + my $new_size = $rows * $columns; + + my $current_size = $current_rows * $current_columns; + + if($new_size != $current_size) { + return 0; + } + + my $result = [ + + ]; + my $k = 0; + my $l = 0; + + for (my $i = 0; $i < $rows; $i++) { + for(my $j = 0; $j < $columns; $j++) { + $result->[$i]->[$j] = $matrix_aref->[$k]->[$l]; + if($l == $current_columns - 1) { + $k++; + } + $l = ($l + 1) % $current_columns; + } + } + + return $result; +} + +1; + |
