diff options
| -rw-r--r-- | challenge-217/ribtips/perl/ch-1.pl | 31 | ||||
| -rw-r--r-- | challenge-217/ribtips/perl/ch-2.pl | 45 |
2 files changed, 76 insertions, 0 deletions
diff --git a/challenge-217/ribtips/perl/ch-1.pl b/challenge-217/ribtips/perl/ch-1.pl new file mode 100644 index 0000000000..87b4811a4f --- /dev/null +++ b/challenge-217/ribtips/perl/ch-1.pl @@ -0,0 +1,31 @@ +#!/usr/bin/perl + +use strict; +use warnings; +use Data::Dumper; + +&main; + +sub main { + my @matrix=([3, 1, 2], [5, 2, 4], [0, 1, 3]); + my $third_smallest=&convert_matrix(\@matrix); + print "Output: $third_smallest\n"; + @matrix=([2,1],[4,5]); + $third_smallest=&convert_matrix(\@matrix); + print "Output: $third_smallest\n"; + @matrix=([1,0,3],[0,0,0],[1,2,1]); + $third_smallest=&convert_matrix(\@matrix); + print "Output: $third_smallest\n"; +} + +sub convert_matrix { + my $matrix=shift; + my @all=(); + foreach my $sub_array (@$matrix) { + push @all,@$sub_array; + } + + my @sorted = sort {$a <=> $b} @all; + + return($sorted[2]);; +} diff --git a/challenge-217/ribtips/perl/ch-2.pl b/challenge-217/ribtips/perl/ch-2.pl new file mode 100644 index 0000000000..87533049a1 --- /dev/null +++ b/challenge-217/ribtips/perl/ch-2.pl @@ -0,0 +1,45 @@ +#!/usr/bin/perl + +use strict; +use warnings; +use Data::Dumper; + +&main; + +sub main { + my @list=(1,23); + &big_num(\@list); + @list=(10,3,2); + &big_num(\@list); + @list=(31,2,4,10); + &big_num(\@list); + @list=(5,11,4,1,2); + &big_num(\@list); + @list=(1,10); + &big_num(\@list); +} + +sub big_num { + my $list=shift; + my %nums=(); + + foreach my $num (@$list) { + foreach my $digit (0..9) { + if ($num =~ m/^$digit/) { + push(@{$nums{$digit}},$num); + last; + } + } + } + + my $big_num=""; + + foreach my $key (reverse sort keys %nums) { + my @sorted=sort {$a<=>$b} @{$nums{$key}}; + my $lil_num=join '',@sorted; + $big_num=$big_num.$lil_num; + } + + print "Output: $big_num\n"; + +} |
