aboutsummaryrefslogtreecommitdiff
path: root/challenge-204
diff options
context:
space:
mode:
authorMohammad S Anwar <mohammad.anwar@yahoo.com>2023-02-19 21:11:56 +0000
committerMohammad S Anwar <mohammad.anwar@yahoo.com>2023-02-19 21:11:56 +0000
commit7e62551d511dfa6a26b7d6797929ae0a865f77bf (patch)
tree68853783818fb329a955ed5c6144d5b95dde3400 /challenge-204
parent4cb80ee66440819fcdb966c92cf6a3350e43c75e (diff)
downloadperlweeklychallenge-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/README1
-rw-r--r--challenge-204/tyler-bird/perl/ch-1.pl39
-rw-r--r--challenge-204/tyler-bird/perl/ch-2.pl65
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;
+