aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJames Smith <js5@sanger.ac.uk>2023-05-20 05:55:19 +0100
committerGitHub <noreply@github.com>2023-05-20 05:55:19 +0100
commit4308b9990ff28be99d2adae35ed556e512162c0a (patch)
tree4c1aa74e72975db2aadbb980472819f7b0dc8471
parent6b8f2fda9eaabc5beda65112ea4db7715ca0594c (diff)
downloadperlweeklychallenge-club-4308b9990ff28be99d2adae35ed556e512162c0a.tar.gz
perlweeklychallenge-club-4308b9990ff28be99d2adae35ed556e512162c0a.tar.bz2
perlweeklychallenge-club-4308b9990ff28be99d2adae35ed556e512162c0a.zip
Create ch-2.pl
-rw-r--r--challenge-217/james-smith/perl/ch-2.pl32
1 files changed, 32 insertions, 0 deletions
diff --git a/challenge-217/james-smith/perl/ch-2.pl b/challenge-217/james-smith/perl/ch-2.pl
new file mode 100644
index 0000000000..6bda9dd725
--- /dev/null
+++ b/challenge-217/james-smith/perl/ch-2.pl
@@ -0,0 +1,32 @@
+#!/usr/local/bin/perl
+
+use strict;
+use warnings;
+use feature qw(say);
+use Test::More;
+use Benchmark qw(cmpthese);
+use Data::Dumper qw(Dumper);
+
+my @TESTS = (
+ [ [1,23],231],
+ [ [10,3,2],3210],
+ [ [31,2,4,10] ,431210],
+ [ [5,11,4,1,2], 542111],
+ [ [1,10],110 ],
+ [ [1,10,110,9,90,900],'990900111010' ],
+ [ [900,1,9,10,90,110],'990900111010' ],
+);
+
+
+sub max_number { join '', sort { $b.$a cmp $a.$b } @_ }
+sub max_number_n { join '', sort { $b.$a <=> $a.$b } @_ }
+
+is( max_number( @{$_->[0]} ) , $_->[1] ) for @TESTS;
+is( max_number_n( @{$_->[0]} ) , $_->[1] ) for @TESTS;
+done_testing();
+
+cmpthese( 5_000_000, {
+ 'cmp' => sub { max_number( @{$_->[0]} ) for @TESTS },
+ '<=>' => sub { max_number_n( @{$_->[0]} ) for @TESTS },
+});
+