aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--challenge-217/ribtips/perl/ch-1.pl31
-rw-r--r--challenge-217/ribtips/perl/ch-2.pl45
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";
+
+}