diff options
| author | Mohammad S Anwar <mohammad.anwar@yahoo.com> | 2020-03-08 17:35:49 +0000 |
|---|---|---|
| committer | Mohammad S Anwar <mohammad.anwar@yahoo.com> | 2020-03-08 17:35:49 +0000 |
| commit | a991bcee8cc55834f879128e5273b98199a91526 (patch) | |
| tree | 06d07d1d0af8e53981c55a9423a4da1dd80a45a6 /challenge-050 | |
| parent | b13c136421244186da002ebdc7387bea05f1f19a (diff) | |
| download | perlweeklychallenge-club-a991bcee8cc55834f879128e5273b98199a91526.tar.gz perlweeklychallenge-club-a991bcee8cc55834f879128e5273b98199a91526.tar.bz2 perlweeklychallenge-club-a991bcee8cc55834f879128e5273b98199a91526.zip | |
- Added solutions by Laurent Rosenfeld.
Diffstat (limited to 'challenge-050')
| -rw-r--r-- | challenge-050/laurent-rosenfeld/blog.txt | 1 | ||||
| -rw-r--r-- | challenge-050/laurent-rosenfeld/perl/ch-1.pl | 21 | ||||
| -rw-r--r-- | challenge-050/laurent-rosenfeld/perl/ch-2.pl | 15 | ||||
| -rw-r--r-- | challenge-050/laurent-rosenfeld/raku/ch-1.p6 | 19 | ||||
| -rw-r--r-- | challenge-050/laurent-rosenfeld/raku/ch-2.p6 | 8 |
5 files changed, 64 insertions, 0 deletions
diff --git a/challenge-050/laurent-rosenfeld/blog.txt b/challenge-050/laurent-rosenfeld/blog.txt new file mode 100644 index 0000000000..d04388f53a --- /dev/null +++ b/challenge-050/laurent-rosenfeld/blog.txt @@ -0,0 +1 @@ +http://blogs.perl.org/users/laurent_r/2020/03/perl-weekly-challenge-merge-inrervals-and-noble-numbers.html diff --git a/challenge-050/laurent-rosenfeld/perl/ch-1.pl b/challenge-050/laurent-rosenfeld/perl/ch-1.pl new file mode 100644 index 0000000000..387cbdb9aa --- /dev/null +++ b/challenge-050/laurent-rosenfeld/perl/ch-1.pl @@ -0,0 +1,21 @@ +use strict; +use warnings; +use feature "say"; +use Data::Dumper; + +my @intervals = ([2,7], [3,4], [5,9], [10,12], [15,19], [18,22], [0,1], [24,35], [25,30]); +@intervals = sort { $a->[0] <=> $b->[0] } @intervals; +my @merged; +# say Dumper \@intervals; +my $current = $intervals[0]; +for my $i (1..$#intervals) { + if ($intervals[$i][0] > $current->[1]) { + push @merged, $current; + $current = $intervals[$i]; + } else { + next unless $intervals[$i][1] > $current->[1]; + $current->[1] = $intervals[$i][1]; + } +} +push @merged, $current; +say Dumper \@merged; diff --git a/challenge-050/laurent-rosenfeld/perl/ch-2.pl b/challenge-050/laurent-rosenfeld/perl/ch-2.pl new file mode 100644 index 0000000000..0cecdaae74 --- /dev/null +++ b/challenge-050/laurent-rosenfeld/perl/ch-2.pl @@ -0,0 +1,15 @@ +use strict; +use warnings; +use feature "say"; + +my $list_size = int(rand 10) + 3; +my @list = map {int(rand 50) + 1 } 1..$list_size; +say $list_size, "/", "@list"; + +# my @list = (2, 6, 1, 3,5, 8); + +@list = sort {$b <=> $a} @list; #descending sort +say $list_size, " / ", "@list"; +for (0..$#list) { + say "$list[$_] is noble." if $list[$_] == $_; +} diff --git a/challenge-050/laurent-rosenfeld/raku/ch-1.p6 b/challenge-050/laurent-rosenfeld/raku/ch-1.p6 new file mode 100644 index 0000000000..b0183eb243 --- /dev/null +++ b/challenge-050/laurent-rosenfeld/raku/ch-1.p6 @@ -0,0 +1,19 @@ +#!/usr/bin/env perl6 + +use v6; + +my @intervals = [2,7], [3,4], [5,9], [10,12], [15,19], [18,22], [0,1], [24,35], [25,30]; +@intervals = sort { $_[0] }, @intervals; +my @merged; +my $current = @intervals[0]; +for 1..@intervals.end -> $i { + if (@intervals[$i][0] > $current[1]) { + push @merged, $current; + $current = @intervals[$i]; + } else { + next unless @intervals[$i][1] > $current[1]; + $current[1] = @intervals[$i][1]; + } +} +push @merged, $current; +say @merged; diff --git a/challenge-050/laurent-rosenfeld/raku/ch-2.p6 b/challenge-050/laurent-rosenfeld/raku/ch-2.p6 new file mode 100644 index 0000000000..5589048099 --- /dev/null +++ b/challenge-050/laurent-rosenfeld/raku/ch-2.p6 @@ -0,0 +1,8 @@ +use v6; + +my $list-size = (3..11).pick; +my @list = (1..50).pick($list-size).sort.reverse; +say @list; +for (0..@list.end) { + say "@list[$_] is noble." if @list[$_] == $_; +} |
