diff options
| author | Niels van Dijke <perlboy@cpan.org> | 2020-07-07 22:30:15 +0000 |
|---|---|---|
| committer | Niels van Dijke <perlboy@cpan.org> | 2020-07-07 22:30:15 +0000 |
| commit | fa3208d101ed1cb0276915d7fa535db4ec9aaae4 (patch) | |
| tree | afc197e120308adeadaa7ca545f8cbb9e9f714ff /challenge-068/perlboy1967 | |
| parent | dbfda338166ad93b7111056115cba860d9314d7c (diff) | |
| download | perlweeklychallenge-club-fa3208d101ed1cb0276915d7fa535db4ec9aaae4.tar.gz perlweeklychallenge-club-fa3208d101ed1cb0276915d7fa535db4ec9aaae4.tar.bz2 perlweeklychallenge-club-fa3208d101ed1cb0276915d7fa535db4ec9aaae4.zip | |
Task 1 & 2
Diffstat (limited to 'challenge-068/perlboy1967')
| -rwxr-xr-x | challenge-068/perlboy1967/perl/ch-1.pl | 50 | ||||
| -rwxr-xr-x | challenge-068/perlboy1967/perl/ch-2.pl | 45 |
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; + } +} |
