diff options
| author | Mohammad S Anwar <Mohammad.Anwar@yahoo.com> | 2022-11-21 04:12:18 +0000 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-11-21 04:12:18 +0000 |
| commit | 1854b222521be344cf626b87f2b92df05531d652 (patch) | |
| tree | 6f600fcf817885f0fe3ec2912875d3af3d8c68c9 | |
| parent | 19db987ea4916c70ec7dea76a082bb334f6be2c1 (diff) | |
| parent | dbc68575d4cd80d8afec86a0ee994a2334f9d588 (diff) | |
| download | perlweeklychallenge-club-1854b222521be344cf626b87f2b92df05531d652.tar.gz perlweeklychallenge-club-1854b222521be344cf626b87f2b92df05531d652.tar.bz2 perlweeklychallenge-club-1854b222521be344cf626b87f2b92df05531d652.zip | |
Merge pull request #7124 from adamcrussell/challenge-191
updated Perl solution for Part 1 to be more efficient
| -rw-r--r-- | challenge-191/adam-russell/perl/ch-1.pl | 18 |
1 files changed, 6 insertions, 12 deletions
diff --git a/challenge-191/adam-russell/perl/ch-1.pl b/challenge-191/adam-russell/perl/ch-1.pl index aa6095c94b..f8ac3ec3b6 100644 --- a/challenge-191/adam-russell/perl/ch-1.pl +++ b/challenge-191/adam-russell/perl/ch-1.pl @@ -5,21 +5,15 @@ use warnings; # You are given list of integers, @list. Write a script to find out whether the largest # item in the list is at least twice as large as each of the other items. ## -use boolean; - sub twice_largest{ my(@list_integers) = @_; - my $twice_max = -1; - for my $i (0 .. @list_integers - 1){ - my $twice_rest = true; - for my $j (0 .. @list_integers - 1){ - unless($i == $j){ - $twice_rest = $list_integers[$i] >= 2 * $list_integers[$j]; - } + my @sorted_integers = sort {$a <=> $b} @list_integers; + for my $i (@sorted_integers[0 .. @sorted_integers - 1]){ + unless($sorted_integers[@sorted_integers - 1] == $i){ + return -1 unless $sorted_integers[@sorted_integers - 1] >= 2 * $i; } - $twice_max = $list_integers[$i] if $twice_rest; - } - return $twice_max>-1?1:-1; + } + return 1; } MAIN:{ |
