aboutsummaryrefslogtreecommitdiff
path: root/challenge-068/perlboy1967
diff options
context:
space:
mode:
authorNiels van Dijke <perlboy@cpan.org>2020-07-07 22:30:15 +0000
committerNiels van Dijke <perlboy@cpan.org>2020-07-07 22:30:15 +0000
commitfa3208d101ed1cb0276915d7fa535db4ec9aaae4 (patch)
treeafc197e120308adeadaa7ca545f8cbb9e9f714ff /challenge-068/perlboy1967
parentdbfda338166ad93b7111056115cba860d9314d7c (diff)
downloadperlweeklychallenge-club-fa3208d101ed1cb0276915d7fa535db4ec9aaae4.tar.gz
perlweeklychallenge-club-fa3208d101ed1cb0276915d7fa535db4ec9aaae4.tar.bz2
perlweeklychallenge-club-fa3208d101ed1cb0276915d7fa535db4ec9aaae4.zip
Task 1 & 2
Diffstat (limited to 'challenge-068/perlboy1967')
-rwxr-xr-xchallenge-068/perlboy1967/perl/ch-1.pl50
-rwxr-xr-xchallenge-068/perlboy1967/perl/ch-2.pl45
2 files changed, 95 insertions, 0 deletions
diff --git a/challenge-068/perlboy1967/perl/ch-1.pl b/challenge-068/perlboy1967/perl/ch-1.pl
new file mode 100755
index 0000000000..12532ce510
--- /dev/null
+++ b/challenge-068/perlboy1967/perl/ch-1.pl
@@ -0,0 +1,50 @@
+#!/usr/bin/perl
+
+# Perl Weekly Challenge - 068
+#
+# Task 1 - Zero Matrix
+#
+# Author: Niels 'PerlBoy' van Dijke
+
+use strict;
+use warnings;
+
+use List::Util qw(min);
+
+sub zeroMatrix (\@);
+sub printMatrix ($\@);
+
+my @matrixes = (
+ [
+ [1, 0, 1],
+ [1, 1, 1],
+ [1, 1, 1]
+ ],
+ [
+ [1, 0, 1],
+ [1, 1, 1],
+ [1, 0, 1]
+ ]
+);
+
+foreach my $matrix (@matrixes) {
+ printMatrix('Input', @$matrix);
+ zeroMatrix(@$matrix);
+ printMatrix('Output', @$matrix);
+}
+
+sub zeroMatrix (\@) {
+ my ($matrix) = @_;
+
+ map { $_ = [map {0} @$_] if (!min @$_); } @$matrix;
+}
+
+sub printMatrix ($\@) {
+ my ($label, $matrix) = @_;
+
+ print "$label:\n";
+ foreach my $row (@$matrix) {
+ printf "[%s]\n", join(', ',@$row);
+ }
+ print "--------------\n";
+}
diff --git a/challenge-068/perlboy1967/perl/ch-2.pl b/challenge-068/perlboy1967/perl/ch-2.pl
new file mode 100755
index 0000000000..197725bd3d
--- /dev/null
+++ b/challenge-068/perlboy1967/perl/ch-2.pl
@@ -0,0 +1,45 @@
+#!/usr/bin/perl
+
+# Perl Weekly Challenge - 068
+#
+# Task 1 - ReorderList
+#
+# Author: Niels 'PerlBoy' van Dijke
+
+use strict;
+use warnings;
+
+use Data::LinkedList;
+
+sub printList ($$);
+sub reorderList ($);
+
+
+my @L = qw(L0 L1 L2 L3 L4 L5 L6 L7);
+
+my $ll = Data::LinkedList->new();
+$ll->add_all(@L);
+
+printList('Input', $ll);
+reorderList($ll);
+printList('Output', $ll);
+
+
+sub printList ($$) {
+ my ($label, $myLl) = @_;
+
+ printf "$label: %s\n", join(' -> ', $myLl->to_array);
+}
+
+
+sub reorderList ($) {
+ my ($myLl) = @_;
+
+ my $size = $myLl->size;
+
+ my $i = 1;
+ while ($i < $size) {
+ $myLl->insert($i, $myLl->remove_last);
+ $i += 2;
+ }
+}