diff options
| author | Mohammad S Anwar <mohammad.anwar@yahoo.com> | 2023-04-16 04:30:12 +0100 |
|---|---|---|
| committer | Mohammad S Anwar <mohammad.anwar@yahoo.com> | 2023-04-16 04:30:12 +0100 |
| commit | 077fa99c94530ced6ba700278a82104cec148a30 (patch) | |
| tree | 6a39e3966476d2f3d506ae35b73f67631cb72b13 | |
| parent | 93007cd71d481bd52a0e4be2fd2833cea22c6258 (diff) | |
| download | perlweeklychallenge-club-077fa99c94530ced6ba700278a82104cec148a30.tar.gz perlweeklychallenge-club-077fa99c94530ced6ba700278a82104cec148a30.tar.bz2 perlweeklychallenge-club-077fa99c94530ced6ba700278a82104cec148a30.zip | |
- Added solutions by Avery Adams.
- Added solutions by David Ferrone.
- Added solutions by Roger Bell_West.
- Added solutions by Lubos Kolouch.
- Added solutions by Duncan C. White.
- Added solutions by Jorg Sommrey.
- Added solutions by Peter Campbell Smith.
- Added solutions by Robert Ransbottom.
- Added solutions by James Smith.
- Added solutions by Matthew Neleigh.
- Added solutions by Athanasius.
- Added solutions by Carlos Oliveira.
- Added solutions by Laurent Rosenfeld.
24 files changed, 4204 insertions, 3904 deletions
diff --git a/challenge-212/conor-hoekstra/ch-01.apl b/challenge-212/conor-hoekstra/apl/ch-1.apl index 655a5db552..655a5db552 100644 --- a/challenge-212/conor-hoekstra/ch-01.apl +++ b/challenge-212/conor-hoekstra/apl/ch-1.apl diff --git a/challenge-212/laurent-rosenfeld/blog1.txt b/challenge-212/laurent-rosenfeld/blog1.txt new file mode 100644 index 0000000000..6624ec1671 --- /dev/null +++ b/challenge-212/laurent-rosenfeld/blog1.txt @@ -0,0 +1 @@ +https://blogs.perl.org/users/laurent_r/2023/04/perl-weekly-challenge-212-rearrange-groups.html diff --git a/challenge-212/laurent-rosenfeld/perl/ch-2.pl b/challenge-212/laurent-rosenfeld/perl/ch-2.pl new file mode 100644 index 0000000000..94856ff694 --- /dev/null +++ b/challenge-212/laurent-rosenfeld/perl/ch-2.pl @@ -0,0 +1,38 @@ +use warnings; +use feature "say"; + +sub rearrange { + my @in = @{$_[0]}; + my $size = $_[1]; + my @result; + return "-1" if @in % $size; + my %bag; + $bag{$_}++ for @in; + while (%bag) { + my $min = (sort { $a <=> $b } keys %bag)[0]; + my @list = $min..($min + $size -1); + for my $item (@list) { + return "-1" unless exists $bag{$item}; + $bag{$item}--; + delete $bag{$item} if $bag{$item} == 0; + } + push @result, \@list; + } + return @result; +} + +for my $test( [[1,2,3,5,1,2,7,6,3], 3], + [[1,2,3], 2], [[1,2,3], 3], + [[1,2,4,3,5,3], 3], + [[1,5,2,6,4,7], 3], + [[1,5,2,6,4,7], 2] ) + { + say "(@{$test->[0]})", " ", "($test->[1])"; + my @result = rearrange(@$test); + if ($result[0] == "-1") { + say -1; + } else { + say map { "[@$_] " } @result; + } + say " "; +} diff --git a/challenge-212/laurent-rosenfeld/raku/ch-2.raku b/challenge-212/laurent-rosenfeld/raku/ch-2.raku new file mode 100644 index 0000000000..dc66260495 --- /dev/null +++ b/challenge-212/laurent-rosenfeld/raku/ch-2.raku @@ -0,0 +1,20 @@ +sub rearrange (@in, $size) { + my @result; + return -1 unless @in.elems %% $size; + my $bag = @in.Bag; + while ($bag) { + my $min = $bag.min.key; + my @list = $min..^($min + $size); + return -1 unless @list ⊆ $bag; + push @result, @list; + $bag = $bag (-) @list; # set difference + } + return @result; +} + +for ((1,2,3,5,1,2,7,6,3), 3), ((1,2,3), 2), ((1,2,3), 3), + ((1,2,4,3,5,3), 3), ((1,5,2,6,4,7), 3), + ((1,5,2,6,4,7), 2) -> @test { + say @test; + say rearrange(|@test), "\n"; +} diff --git a/stats/pwc-challenge-045.json b/stats/pwc-challenge-045.json index a1ede026a2..8109429b1e 100644 --- a/stats/pwc-challenge-045.json +++ b/stats/pwc-challenge-045.json @@ -1,203 +1,4 @@ { - "legend" : { - "enabled" : 0 - }, - "yAxis" : { - "title" : { - "text" : "Total Solutions" - } - }, - "series" : [ - { - "colorByPoint" : 1, - "name" : "The Weekly Challenge - 045", - "data" : [ - { - "drilldown" : "Adam Russell", - "y" : 3, - "name" : "Adam Russell" - }, - { - "name" : "Alicia Bielsa", - "y" : 2, - "drilldown" : "Alicia Bielsa" - }, - { - "drilldown" : "Andrezgz", - "y" : 2, - "name" : "Andrezgz" - }, - { - "drilldown" : "Arne Sommer", - "name" : "Arne Sommer", - "y" : 5 - }, - { - "drilldown" : "Athanasius", - "y" : 1, - "name" : "Athanasius" - }, - { - "drilldown" : "Burkhard Nickels", - "name" : "Burkhard Nickels", - "y" : 4 - }, - { - "y" : 1, - "name" : "Cheok-Yin Fung", - "drilldown" : "Cheok-Yin Fung" - }, - { - "name" : "Colin Crain", - "y" : 4, - "drilldown" : "Colin Crain" - }, - { - "y" : 1, - "name" : "Cristina Heredia", - "drilldown" : "Cristina Heredia" - }, - { - "drilldown" : "Dave Cross", - "name" : "Dave Cross", - "y" : 2 - }, - { - "drilldown" : "Dave Jacoby", - "y" : 3, - "name" : "Dave Jacoby" - }, - { - "drilldown" : "Duane Powell", - "y" : 2, - "name" : "Duane Powell" - }, - { - "drilldown" : "Duncan C. White", - "y" : 2, - "name" : "Duncan C. White" - }, - { - "drilldown" : "E. Choroba", - "name" : "E. Choroba", - "y" : 3 - }, - { - "y" : 5, - "name" : "Jaldhar H. Vyas", - "drilldown" : "Jaldhar H. Vyas" - }, - { - "name" : "Jan Ole Kraft", - "y" : 2, - "drilldown" : "Jan Ole Kraft" - }, - { - "y" : 5, - "name" : "Javier Luque", - "drilldown" : "Javier Luque" - }, - { - "drilldown" : "Kevin Colyer", - "name" : "Kevin Colyer", - "y" : 2 - }, - { - "y" : 5, - "name" : "Laurent Rosenfeld", - "drilldown" : "Laurent Rosenfeld" - }, - { - "y" : 3, - "name" : "Luca Ferrari", - "drilldown" : "Luca Ferrari" - }, - { - "name" : "Mark Anderson", - "y" : 1, - "drilldown" : "Mark Anderson" - }, - { - "drilldown" : "Markus Holzer", - "name" : "Markus Holzer", - "y" : 2 - }, - { - "name" : "Maxim Kolodyazhny", - "y" : 2, - "drilldown" : "Maxim Kolodyazhny" - }, - { - "drilldown" : "Nazareno Delucca", - "name" : "Nazareno Delucca", - "y" : 2 - }, - { - "drilldown" : "Noud Aldenhoven", - "name" : "Noud Aldenhoven", - "y" : 2 - }, - { - "name" : "Paulo Custodio", - "y" : 2, - "drilldown" : "Paulo Custodio" - }, - { - "drilldown" : "Peter Scott", - "y" : 1, - "name" : "Peter Scott" - }, - { - "drilldown" : "Rage311", - "y" : 2, - "name" : "Rage311" - }, - { - "y" : 5, - "name" : "Roger Bell_West", - "drilldown" : "Roger Bell_West" - }, - { - "y" : 4, - "name" : "Ruben Westerberg", - "drilldown" : "Ruben Westerberg" - }, - { - "name" : "Ryan Thompson", - "y" : 6, - "drilldown" : "Ryan Thompson" - }, - { - "y" : 2, - "name" : "Saif Ahmed", - "drilldown" : "Saif Ahmed" - }, - { - "y" : 2, - "name" : "Simon Proctor", - "drilldown" : "Simon Proctor" - }, - { - "drilldown" : "Stuart Little", - "name" : "Stuart Little", - "y" : 2 - }, - { - "drilldown" : "Ulrich Rieke", - "name" : "Ulrich Rieke", - "y" : 4 - }, - { - "drilldown" : "Wanderdoc", - "name" : "Wanderdoc", - "y" : 2 - } - ] - } - ], - "subtitle" : { - "text" : "[Champions: 36] Last updated at 2022-04-07 14:02:36 GMT" - }, "xAxis" : { "type" : "category" }, @@ -206,26 +7,10 @@ "headerFormat" : "<span style='font-size:11px'>{series.name}</span><br/>", "pointFormat" : "<span style='color:{point.color}'>{point.name}</span>: <b>{point.y:f}</b><br/>" }, - "title" : { - "text" : "The Weekly Challenge - 045" - }, - "plotOptions" : { - "series" : { - "borderWidth" : 0, - "dataLabels" : { - "enabled" : 1, - "format" : "{point.y}" - } - } - }, - "chart" : { - "type" : "column" - }, "drilldown" : { "series" : [ { "name" : "Adam Russell", - "id" : "Adam Russell", "data" : [ [ "Perl", @@ -235,17 +20,18 @@ "Blog", 1 ] - ] + ], + "id" : "Adam Russell" }, { + "id" : "Alicia Bielsa", "name" : "Alicia Bielsa", "data" : [ [ "Perl", 2 ] - ], - "id" : "Alicia Bielsa" + ] }, { "data" : [ @@ -254,10 +40,12 @@ 2 ] ], - "id" : "Andrezgz", - "name" : "Andrezgz" + "name" : "Andrezgz", + "id" : "Andrezgz" }, { + "id" : "Arne Sommer", + "name" : "Arne Sommer", "data" : [ [ "Perl", @@ -271,19 +59,17 @@ "Blog", 1 ] - ], - "id" : "Arne Sommer", - "name" : "Arne Sommer" + ] }, { + "name" : "Athanasius", "data" : [ [ "Perl", 1 ] ], - "id" : "Athanasius", - "name" : "Athanasius" + "id" : "Athanasius" }, { "id" : "Burkhard Nickels", @@ -300,16 +86,17 @@ "name" : "Burkhard Nickels" }, { - "name" : "Cheok-Yin Fung", + "id" : "Cheok-Yin Fung", "data" : [ [ "Perl", 1 ] ], - "id" : "Cheok-Yin Fung" + "name" : "Cheok-Yin Fung" }, { + "name" : "Colin Crain", "data" : [ [ "Perl", @@ -320,30 +107,30 @@ 2 ] ], - "id" : "Colin Crain", - "name" : "Colin Crain" + "id" : "Colin Crain" }, { - "id" : "Cristina Heredia", "data" : [ [ "Perl", 1 ] ], - "name" : "Cristina Heredia" + "name" : "Cristina Heredia", + "id" : "Cristina Heredia" }, { - "id" : "Dave Cross", + "name" : "Dave Cross", "data" : [ [ "Perl", 2 ] ], - "name" : "Dave Cross" + "id" : "Dave Cross" }, { + "id" : "Dave Jacoby", "data" : [ [ "Perl", @@ -354,31 +141,29 @@ 1 ] ], - "id" : "Dave Jacoby", "name" : "Dave Jacoby" }, { "name" : "Duane Powell", - "id" : "Duane Powell", "data" : [ [ "Perl", 2 ] - ] + ], + "id" : "Duane Powell" }, { - "name" : "Duncan C. White", + "id" : "Duncan C. White", "data" : [ [ "Perl", 2 ] ], - "id" : "Duncan C. White" + "name" : "Duncan C. White" }, { - "name" : "E. Choroba", "data" : [ [ "Perl", @@ -389,10 +174,12 @@ 1 ] ], + "name" : "E. Choroba", "id" : "E. Choroba" }, { "id" : "Jaldhar H. Vyas", + "name" : "Jaldhar H. Vyas", "data" : [ [ "Perl", @@ -406,20 +193,20 @@ "Blog", 1 ] - ], - "name" : "Jaldhar H. Vyas" + ] }, { - "name" : "Jan Ole Kraft", - "id" : "Jan Ole Kraft", "data" : [ [ "Raku", 2 ] - ] + ], + "name" : "Jan Ole Kraft", + "id" : "Jan Ole Kraft" }, { + "id" : "Javier Luque", "data" : [ [ "Perl", @@ -434,21 +221,20 @@ 1 ] ], - "id" : "Javier Luque", "name" : "Javier Luque" }, { - "id" : "Kevin Colyer", + "name" : "Kevin Colyer", "data" : [ [ "Raku", 2 ] ], - "name" : "Kevin Colyer" + "id" : "Kevin Colyer" }, { - "id" : "Laurent Rosenfeld", + "name" : "Laurent Rosenfeld", "data" : [ [ "Perl", @@ -463,10 +249,19 @@ 1 ] ], - "name" : "Laurent Rosenfeld" + "id" : "Laurent Rosenfeld" + }, + { + "name" : "Lubos Kolouch", + "data" : [ + [ + "Perl", + 2 + ] + ], + "id" : "Lubos Kolouch" }, { - "name" : "Luca Ferrari", "data" : [ [ "Raku", @@ -477,21 +272,22 @@ 1 ] ], + "name" : "Luca Ferrari", "id" : "Luca Ferrari" }, { - "id" : "Mark Anderson", "data" : [ [ "Raku", 1 ] ], - "name" : "Mark Anderson" + "name" : "Mark Anderson", + "id" : "Mark Anderson" }, { - "name" : "Markus Holzer", "id" : "Markus Holzer", + "name" : "Markus Holzer", "data" : [ [ "Raku", @@ -506,12 +302,12 @@ 2 ] ], - "id" : "Maxim Kolodyazhny", - "name" : "Maxim Kolodyazhny" + "name" : "Maxim Kolodyazhny", + "id" : "Maxim Kolodyazhny" }, { - "name" : "Nazareno Delucca", "id" : "Nazareno Delucca", + "name" : "Nazareno Delucca", "data" : [ [ "Perl", @@ -520,44 +316,44 @@ ] }, { - "name" : "Noud Aldenhoven", + "id" : "Noud Aldenhoven", "data" : [ [ "Raku", 2 ] ], - "id" : "Noud Aldenhoven" + "name" : "Noud Aldenhoven" }, { - "name" : "Paulo Custodio", + "id" : "Paulo Custodio", "data" : [ [ "Perl", 2 ] ], - "id" : "Paulo Custodio" + "name" : "Paulo Custodio" }, { + "id" : "Peter Scott", "data" : [ [ "Perl", 1 ] ], - "id" : "Peter Scott", "name" : "Peter Scott" }, { - "id" : "Rage311", "data" : [ [ "Perl", 2 ] ], - "name" : "Rage311" + "name" : "Rage311", + "id" : "Rage311" }, { "data" : [ @@ -574,11 +370,11 @@ 1 ] ], - "id" : "Roger Bell_West", - "name" : "Roger Bell_West" + "name" : "Roger Bell_West", + "id" : "Roger Bell_West" }, { - "id" : "Ruben Westerberg", + "name" : "Ruben Westerberg", "data" : [ [ "Perl", @@ -589,9 +385,10 @@ 2 ] ], - "name" : "Ruben Westerberg" + "id" : "Ruben Westerberg" }, { + "id" : "Ryan Thompson", "data" : [ [ "Perl", @@ -606,18 +403,17 @@ 2 ] ], - "id" : "Ryan Thompson", "name" : "Ryan Thompson" }, { "name" : "Saif Ahmed", - "id" : "Saif Ahmed", "data" : [ [ "Perl", 2 ] - ] + ], + "id" : "Saif Ahmed" }, { "data" : [ @@ -626,21 +422,21 @@ 2 ] ], - "id" : "Simon Proctor", - "name" : "Simon Proctor" + "name" : "Simon Proctor", + "id" : "Simon Proctor" }, { - "name" : "Stuart Little", + "id" : "Stuart Little", "data" : [ [ "Raku", 2 ] ], - "id" : "Stuart Little" + "name" : "Stuart Little" }, { - "name" : "Ulrich Rieke", + "id" : "Ulrich Rieke", "data" : [ [ "Perl", @@ -651,18 +447,237 @@ 2 ] ], - "id" : "Ulrich Rieke" + "name" : "Ulrich Rieke" }, { + "id" : "Wanderdoc", "name" : "Wanderdoc", "data" : [ [ "Perl", 2 ] - ], - "id" : "Wanderdoc" + ] } ] + }, + "subtitle" : { + "text" : "[Champions: 37] Last updated at 2023-04-16 02:58:18 GMT" + }, + "legend" : { + "enabled" : 0 + }, + "title" : { + "text" : "The Weekly Challenge - 045" + }, + "chart" : { + "type" : "column" + }, + "plotOptions" : { + "series" : { + "dataLabels" : { + "enabled" : 1, + "format" : "{point.y}" + }, + "borderWidth" : 0 + } + }, + "series" : [ + { + "colorByPoint" : 1, + "name" : "The Weekly Challenge - 045", + "data" : [ + { + "drilldown" : "Adam Russell", + "y" : 3, + "name" : "Adam Russell" + }, + { + "y" : 2, + "drilldown" : "Alicia Bielsa", + "name" : "Alicia Bielsa" + }, + { + "name" : "Andrezgz", + "y" : 2, + "drilldown" : "Andrezgz" + }, + { + "drilldown" : "Arne Sommer", + "y" : 5, + "name" : "Arne Sommer" + }, + { + "y" : 1, + "drilldown" : "Athanasius", + "name" : "Athanasius" + }, + { + "y" : 4, + "drilldown" : "Burkhard Nickels", + "name" : "Burkhard Nickels" + }, + { + "drilldown" : "Cheok-Yin Fung", + "y" : 1, + "name" : "Cheok-Yin Fung" + }, + { + "name" : "Colin Crain", + "y" : 4, + "drilldown" : "Colin Crain" + }, + { + "y" : 1, + "drilldown" : "Cristina Heredia", + "name" : "Cristina Heredia" + }, + { + "drilldown" : "Dave Cross", + "y" : 2, + "name" : "Dave Cross" + }, + { + "drilldown" : "Dave Jacoby", + "y" : 3, + "name" : "Dave Jacoby" + }, + { + "y" : 2, + "drilldown" : "Duane Powell", + "name" : "Duane Powell" + }, + { + "y" : 2, + "drilldown" : "Duncan C. White", + "name" : "Duncan C. White" + }, + { + "y" : 3, + "drilldown" : "E. Choroba", + "name" : "E. Choroba" + }, + { + "drilldown" : "Jaldhar H. Vyas", + "y" : 5, + "name" : "Jaldhar H. Vyas" + }, + { + "drilldown" : "Jan Ole Kraft", + "y" : 2, + "name" : "Jan Ole Kraft" + }, + { + "name" : "Javier Luque", + "y" : 5, + "drilldown" : "Javier Luque" + }, + { + "drilldown" : "Kevin Colyer", + "y" : 2, + "name" : "Kevin Colyer" + }, + { + "name" : "Laurent Rosenfeld", + "drilldown" : "Laurent Rosenfeld", + "y" : 5 + }, + { + "name" : "Lubos Kolouch", + "drilldown" : "Lubos Kolouch", + "y" : 2 + }, + { + "name" : "Luca Ferrari", + "drilldown" : "Luca Ferrari", + "y" : 3 + }, + { + "drilldown" : "Mark Anderson", + "y" : 1, + "name" : "Mark Anderson" + }, + { + "y" : 2, + "drilldown" : "Markus Holzer", + "name" : "Markus Holzer" + }, + { + "name" : "Maxim Kolodyazhny", + "drilldown" : "Maxim Kolodyazhny", + "y" : 2 + }, + { + "y" : 2, + "drilldown" : "Nazareno Delucca", + "name" : "Nazareno Delucca" + }, + { + "name" : "Noud Aldenhoven", + "y" : 2, + "drilldown" : "Noud Aldenhoven" + }, + { + "drilldown" : "Paulo Custodio", + "y" : 2, + "name" : "Paulo Custodio" + }, + { + "y" : 1, + "drilldown" : "Peter Scott", + "name" : "Peter Scott" + }, + { + "name" : "Rage311", + "y" : 2, + "drilldown" : "Rage311" + }, + { + "name" : "Roger Bell_West", + "y" : 5, + "drilldown" : "Roger Bell_West" + }, + { + "name" : "Ruben Westerberg", + "y" : 4, + "drilldown" : "Ruben Westerberg" + }, + { + "name" : "Ryan Thompson", + "y" : 6, + "drilldown" : "Ryan Thompson" + }, + { + "y" : 2, + "drilldown" : "Saif Ahmed", + "name" : "Saif Ahmed" + }, + { + "y" : 2, + "drilldown" : "Simon Proctor", + "name" : "Simon Proctor" + }, + { + "y" : 2, + "drilldown" : "Stuart Little", + "name" : "Stuart Little" + }, + { + "name" : "Ulrich Rieke", + "y" : 4, + "drilldown" : "Ulrich Rieke" + }, + { + "name" : "Wanderdoc", + "y" : 2, + "drilldown" : "Wanderdoc" + } + ] + } + ], + "yAxis" : { + "title" : { + "text" : "Total Solutions" + } } } diff --git a/stats/pwc-challenge-046.json b/stats/pwc-challenge-046.json index 517a544862..4f9280ee79 100644 --- a/stats/pwc-challenge-046.json +++ b/stats/pwc-challenge-046.json |
