diff options
| author | Mohammad S Anwar <mohammad.anwar@yahoo.com> | 2024-04-03 15:30:54 +0100 |
|---|---|---|
| committer | Mohammad S Anwar <mohammad.anwar@yahoo.com> | 2024-04-03 15:30:54 +0100 |
| commit | c2aa18d20881e4079d3858c0218ff99a07032d33 (patch) | |
| tree | 01d42695f19ff18cf28549c0a0020fee30af36c3 | |
| parent | 2385f97ce0a42419e213c3fb08c6f4c4cc89b989 (diff) | |
| download | perlweeklychallenge-club-c2aa18d20881e4079d3858c0218ff99a07032d33.tar.gz perlweeklychallenge-club-c2aa18d20881e4079d3858c0218ff99a07032d33.tar.bz2 perlweeklychallenge-club-c2aa18d20881e4079d3858c0218ff99a07032d33.zip | |
- Added solutions by Dave Jacoby.
- Added solutions by Humberto Massa.
- Added solutions by PokGoPun.
- Added solutions by Athanasius.
- Added solutions by Matthew Neleigh.
- Added solutions by Asher Harvey-Smith.
- Added solutions by Kjetil Skotheim.
- Added solutions by Robbie Hatley.
- Added solutions by Reinier Maliepaard.
- Added solutions by Laurent Rosenfeld.
23 files changed, 3428 insertions, 3206 deletions
diff --git a/challenge-263/laurent-rosenfeld/blog1.txt b/challenge-263/laurent-rosenfeld/blog1.txt new file mode 100644 index 0000000000..5ff9c2f5cb --- /dev/null +++ b/challenge-263/laurent-rosenfeld/blog1.txt @@ -0,0 +1 @@ +https://blogs.perl.org/users/laurent_r/2024/04/perl-weekly-challenge-263-merge-items.html diff --git a/challenge-263/laurent-rosenfeld/perl/ch-2.pl b/challenge-263/laurent-rosenfeld/perl/ch-2.pl new file mode 100644 index 0000000000..f0a9fad27a --- /dev/null +++ b/challenge-263/laurent-rosenfeld/perl/ch-2.pl @@ -0,0 +1,17 @@ +sub merge_items { + my %total; + for my $in (@_) { + for my $items (@$in) { + $total{$items->[0]} += $items->[1]; + } + } + return map { "[ $_ $total{$_} ] " } sort keys %total; +} + +my @tests = ( [ [[1,1], [2,1], [3,2]], [[2,2], [1,3]] ], + [ [[1,2], [2,3], [1,3], [3,2]], [[3,1], [1,3]] ], + [ [[1,1], [2,2], [3,3]], [[2,3], [2,4]] ] ); +for my $test (@tests) { + printf "%-3s %-3s => ", "[$test->[0][0][0]", "$test->[0][0][1]] ..."; + say merge_items @$test[0], @$test[1]; +} diff --git a/challenge-263/laurent-rosenfeld/raku/ch-2.raku b/challenge-263/laurent-rosenfeld/raku/ch-2.raku new file mode 100644 index 0000000000..663f0d16e7 --- /dev/null +++ b/challenge-263/laurent-rosenfeld/raku/ch-2.raku @@ -0,0 +1,15 @@ +sub merge-items (@in1, @in2) { + my %total; + for (|@in1, |@in2) -> @items { + %total{@items[0]} += @items[1]; + } + return map { ($_, %total{$_} ) }, %total.keys.sort; +} + +my @tests = ( ((1,1), (2,1), (3,2)), ((2,2), (1,3)) ), + ( ((1,2), (2,3), (1,3), (3,2)), ((3,1), (1,3)) ), + ( ((1,1), (2,2), (3,3)), ((2,3), (2,4)) ); +for @tests -> @test { + printf "%-15s - %-10s => ", "@test[0]", "@test[1]"; + say merge-items @test[0], @test[1]; +} diff --git a/challenge-263/reinier-maliepaard/blog.txt b/challenge-263/reinier-maliepaard/blog.txt new file mode 100644 index 0000000000..b14c51cadf --- /dev/null +++ b/challenge-263/reinier-maliepaard/blog.txt @@ -0,0 +1 @@ +https://reiniermaliepaard.nl/perl/pwc/index.php?id=pwc263 diff --git a/challenge-263/reinier-maliepaard/perl/ch-1.pl b/challenge-263/reinier-maliepaard/perl/ch-1.pl new file mode 100644 index 0000000000..7b4f60c811 --- /dev/null +++ b/challenge-263/reinier-maliepaard/perl/ch-1.pl @@ -0,0 +1,19 @@ +sub mc_target_index { + ($k_, @ints_) = @_; + + @ints_sorted = (); + @ints_sorted = sort( { $a <=> $b } @ints_ ); + join(", ", grep { $ints_sorted[$_] == $k_ } 0 .. $#ints_sorted); +} + +@ints = (1, 5, 3, 2, 4, 2); +$k = 2; +print("\(", mc_target_index($k, @ints), ")\n"); # Output: (1,2) + +@ints = (1, 2, 4, 3, 5); +$k = 6; +print("\(", mc_target_index($k, @ints), ")\n"); # Output: () + +@ints = (5, 3, 2, 4, 2, 1); +$k = 4; +print("\(", mc_target_index($k, @ints), ")\n"); # Output: (4) diff --git a/challenge-263/reinier-maliepaard/perl/ch-2.pl b/challenge-263/reinier-maliepaard/perl/ch-2.pl new file mode 100644 index 0000000000..0e26720619 --- /dev/null +++ b/challenge-263/reinier-maliepaard/perl/ch-2.pl @@ -0,0 +1,33 @@ +sub mc_merge_items { + + ($aref1, $aref2) = @_; + @combined_arrays = (@$aref1, @$aref2); + + %res = (); + foreach ( @combined_arrays ) { + $res{$_->[0]} += $_->[1]; + } + + $output = ""; + foreach $k (sort(keys(%res))) { + $output .= " [$k,$res{$k}], "; + } + + substr($output, -2, length($output), ' '); # remove comma at the end of $output in order to produce the requested output + print("[$output]\n"); +} + + +$items1 = [ [1,1], [2,1], [3,2] ]; +$items2 = [ [2,2], [1,3] ]; +mc_merge_items($items1, $items2); # Output: [ [1,4], [2,3], [3,2] ] + + +$items1 = [ [1,2], [2,3], [1,3], [3,2] ]; +$items2 = [ [3,1], [1,3] ]; +mc_merge_items($items1, $items2); # Output: [ [1,8], [2,3], [3,3] ] + + +$items1 = [ [1,1], [2,2], [3,3] ]; +$items2 = [ [2,3], [2,4] ]; +mc_merge_items($items1, $items2); # Output: [ [1,1], [2,9], [3,3] ] diff --git a/stats/pwc-challenge-012.json b/stats/pwc-challenge-012.json index 4a303c05bd..30dddd6210 100644 --- a/stats/pwc-challenge-012.json +++ b/stats/pwc-challenge-012.json @@ -1,224 +1,40 @@ { - "tooltip" : { - "followPointer" : 1, - "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/>" + "subtitle" : { + "text" : "[Champions: 35] Last updated at 2024-04-03 14:20:51 GMT" }, "yAxis" : { "title" : { "text" : "Total Solutions" } }, + "title" : { + "text" : "The Weekly Challenge - 012" + }, + "tooltip" : { + "pointFormat" : "<span style='color:{point.color}'>{point.name}</span>: <b>{point.y:f}</b><br/>", + "headerFormat" : "<span style='font-size:11px'>{series.name}</span><br/>", + "followPointer" : 1 + }, "plotOptions" : { "series" : { + "borderWidth" : 0, "dataLabels" : { - "enabled" : 1, - "format" : "{point.y}" - }, - "borderWidth" : 0 - } - }, - "chart" : { - "type" : "column" - }, - "xAxis" : { - "type" : "category" - }, - "series" : [ - { - "colorByPoint" : 1, - "name" : "The Weekly Challenge - 012", - "data" : [ - { - "name" : "Aaron Sherman", - "drilldown" : "Aaron Sherman", - "y" : 2 - }, - { - "name" : "Adam Russell", - "drilldown" : "Adam Russell", - "y" : 3 - }, - { - "y" : 2, - "drilldown" : "Alicia Bielsa", - "name" : "Alicia Bielsa" - }, - { - "name" : "Andrezgz", - "drilldown" : "Andrezgz", - "y" : 2 - }, - { - "drilldown" : "Arne Sommer", - "name" : "Arne Sommer", - "y" : 3 - }, - { - "name" : "Athanasius", - "drilldown" : "Athanasius", - "y" : 5 - }, - { - "name" : "Daniel Mantovani", - "drilldown" : "Daniel Mantovani", - "y" : 2 - }, - { - "drilldown" : "Dave Jacoby", - "name" : "Dave Jacoby", - "y" : 4 - }, - { - "drilldown" : "David Ferrone", - "name" : "David Ferrone", - "y" : 2 - }, - { - "drilldown" : "Duncan C. White", - "name" : "Duncan C. White", - "y" : 2 - }, - { - "y" : 3, - "name" : "E. Choroba", - "drilldown" : "E. Choroba" - }, - { - "drilldown" : "Feng Chang", - "name" : "Feng Chang", - "y" : 5 - }, - { - "name" : "Francis Whittle", - "drilldown" : "Francis Whittle", - "y" : 3 - }, - { - "drilldown" : "Gustavo Chaves", - "name" : "Gustavo Chaves", - "y" : 2 - }, - { - "y" : 2, - "drilldown" : "Jaime Corchado", - "name" : "Jaime Corchado" - }, - { - "drilldown" : "Jaldhar H. Vyas", - "name" : "Jaldhar H. Vyas", - "y" : 4 - }, - { - "name" : "Joe Tym", - "drilldown" : "Joe Tym", - "y" : 1 - }, - { - "y" : 7, - "name" : "Joelle Maslak", - "drilldown" : "Joelle Maslak" - }, - { - "name" : "Jorg Sommrey", - "drilldown" : "Jorg Sommrey", - "y" : 1 - }, - { - "y" : 2, - "drilldown" : "Kevin Colyer", - "name" : "Kevin Colyer" - }, - { - "y" : 3, - "drilldown" : "Kian-Meng Ang", - "name" : "Kian-Meng Ang" - }, - { - "name" : "Lakpa Tashi Bhutia", - "drilldown" : "Lakpa Tashi Bhutia", - "y" : 2 - }, - { - "y" : 6, - "drilldown" : "Laurent Rosenfeld", - "name" : "Laurent Rosenfeld" - }, - { - "drilldown" : "Lubos Kolouch", - "name" : "Lubos Kolouch", - "y" : 2 - }, - { - "y" : 3, - "drilldown" : "Mark Senn", - "name" : "Mark Senn" - }, - { - "name" : "Maxim Nechaev", - "drilldown" : "Maxim Nechaev", - "y" : 1 - }, - { - "name" : "Ozzy", - "drilldown" : "Ozzy", - "y" : 2 - }, - { - "name" : "Paulo Custodio", - "drilldown" : "Paulo Custodio", - "y" : 2 - }, - { - "name" : "Rakesh Kumar Shardiwal", - "drilldown" : "Rakesh Kumar Shardiwal", - "y" : 2 - }, - { - "y" : 4, - "drilldown" : "Ruben Westerberg", - "name" : "Ruben Westerberg" - }, - { - "y" : 2, - "drilldown" : "Simon Proctor", - "name" : "Simon Proctor" - }, - { - "drilldown" : "Steven Wilson", - "name" : "Steven Wilson", - "y" : 3 - }, - { - "y" : 2, - "drilldown" : "Stuart Little", - "name" : "Stuart Little" - }, - { - "drilldown" : "Yozen Hernandez", - "name" : "Yozen Hernandez", - "y" : 3 - } - ] + "format" : "{point.y}", + "enabled" : 1 + } } - ], - "title" : { - "text" : "The Weekly Challenge - 012" - }, - "legend" : { - "enabled" : 0 }, "drilldown" : { "series" : [ { + "id" : "Aaron Sherman", + "name" : "Aaron Sherman", "data" : [ [ "Raku", 2 ] - ], - "name" : "Aaron Sherman", - "id" : "Aaron Sherman" + ] }, { "name" : "Adam Russell", @@ -245,17 +61,18 @@ "id" : "Alicia Bielsa" }, { - "name" : "Andrezgz", + "id" : "Andrezgz", "data" : [ [ "Perl", 2 ] ], - "id" : "Andrezgz" + "name" : "Andrezgz" }, { "id" : "Arne Sommer", + "name" : "Arne Sommer", "data" : [ [ "Raku", @@ -265,11 +82,9 @@ "Blog", 1 ] - ], - "name" : "Arne Sommer" + ] }, { - "name" : "Athanasius", "data" : [ [ "Perl", @@ -280,19 +95,21 @@ 2 ] ], + "name" : "Athanasius", "id" : "Athanasius" }, { - "id" : "Daniel Mantovani", "data" : [ [ "Perl", 2 ] ], - "name" : "Daniel Mantovani" + "name" : "Daniel Mantovani", + "id" : "Daniel Mantovani" }, { + "name" : "Dave Jacoby", "data" : [ [ "Perl", @@ -303,7 +120,6 @@ 2 ] ], - "name" : "Dave Jacoby", "id" : "Dave Jacoby" }, { @@ -327,7 +143,6 @@ ] }, { - "id" : "E. Choroba", "name" : "E. Choroba", "data" : [ [ @@ -338,9 +153,12 @@ "Blog", 1 ] - ] + ], + "id" : "E. Choroba" }, { + "id" : "Feng Chang", + "name" : "Feng Chang", "data" : [ [ "Perl", @@ -350,31 +168,39 @@ "Raku", 2 ] - ], - "name" : "Feng Chang", - "id" : "Feng Chang" + ] }, { - "id" : "Francis Whittle", "data" : [ [ "Raku", 3 ] ], - "name" : "Francis Whittle" + "name" : "Francis Whittle", + "id" : "Francis Whittle" }, { - "name" : "Gustavo Chaves", "data" : [ [ "Perl", 2 ] ], + "name" : "Gustavo Chaves", "id" : "Gustavo Chaves" }, { + "id" : "Humberto Massa", + "name" : "Humberto Massa", + "data" : [ + [ + "Raku", + 2 + ] + ] + }, + { "name" : "Jaime Corchado", "data" : [ [ @@ -385,8 +211,6 @@ "id" : "Jaime Corchado" }, { - "id" : "Jaldhar H. Vyas", - "name" : "Jaldhar H. Vyas", "data" : [ [ "Perl", @@ -396,17 +220,19 @@ "Raku", 2 ] - ] + ], + "name" : "Jaldhar H. Vyas", + "id" : "Jaldhar H. Vyas" }, { - "id" : "Joe Tym", + "name" : "Joe Tym", "data" : [ [ "Perl", 1 ] ], - "name" : "Joe Tym" + "id" : "Joe Tym" }, { "id" : "Joelle Maslak", @@ -427,28 +253,26 @@ ] }, { + "id" : "Jorg Sommrey", "name" : "Jorg Sommrey", "data" : [ [ "Perl", 1 ] - ], - "id" : "Jorg Sommrey" + ] }, { + "id" : "Kevin Colyer", "name" : "Kevin Colyer", "data" : [ [ "Raku", 2 ] - ], - "id" : "Kevin Colyer" + ] }, { - "id" : "Kian-Meng Ang", - "name" : "Kian-Meng Ang", "data" : [ [ "Perl", @@ -458,17 +282,19 @@ "Blog", 1 ] - ] + ], + "name" : "Kian-Meng Ang", + "id" : "Kian-Meng Ang" }, { + "id" : "Lakpa Tashi Bhutia", + "name" : "Lakpa Tashi Bhutia", "data" : [ [ "Perl", 2 ] - ], - "name" : "Lakpa Tashi Bhutia", - "id" : "Lakpa Tashi Bhutia" + ] }, { "id" : "Laurent Rosenfeld", @@ -489,17 +315,17 @@ "name" : "Laurent Rosenfeld" }, { - "id" : "Lubos Kolouch", - "name" : "Lubos Kolouch", "data" : [ [ "Perl", 2 ] - ] + ], + "name" : "Lubos Kolouch", + "id" : "Lubos Kolouch" }, { - "id" : "Mark Senn", + "name" : "Mark Senn", "data" : [ [ "Raku", @@ -510,51 +336,50 @@ 1 ] ], - "name" : "Mark Senn" + "id" : "Mark Senn" }, { + "name" : "Maxim Nechaev", "data" : [ [ "Perl", 1 ] ], - "name" : "Maxim Nechaev", "id" : "Maxim Nechaev" }, { - "id" : "Ozzy", "name" : "Ozzy", "data" : [ [ "Raku", 2 ] - ] + ], + "id" : "Ozzy" }, { "id" : "Paulo Custodio", + "name" : "Paulo Custodio", "data" : [ [ "Perl", 2 ] - ], - "name" : "Paulo Custodio" + ] }, { "id" : "Rakesh Kumar Shardiwal", + "name" : "Rakesh Kumar Shardiwal", "data" : [ [ "Perl", 2 ] - ], - "name" : "Rakesh Kumar Shardiwal" + ] }, { "id" : "Ruben Westerberg", - "name" : "Ruben Westerberg", "data" : [ [ "Perl", @@ -564,7 +389,8 @@ "Raku", 2 ] - ] + ], + "name" : "Ruben Westerberg" }, { "name" : "Simon Proctor", @@ -577,27 +403,28 @@ "id" : "Simon Proctor" }, { - "id" : "Steven Wilson", + "name" : "Steven Wilson", "data" : [ [ "Perl", 3 ] ], - "name" : "Steven Wilson" + "id" : "Steven Wilson" }, { - "id" : "Stuart Little", + "name" : "Stuart Little", "data" : [ [ "Raku", 2 ] ], - "name" : "Stuart Little" + "id" : "Stuart Little" }, { "id" : "Yozen Hernandez", + "name" : "Yozen Hernandez", "data" : [ [ "Perl", @@ -607,12 +434,200 @@ "Blog", 1 ] - ], - "name" : "Yozen Hernandez" + ] } ] }, - "subtitle" : { - "text" : "[Champions: 34] Last updated at 2024-03-16 13:08:29 GMT" + "series" : [ + { + "colorByPoint" : 1, + "name" : "The Weekly Challenge - 012", + "data" : [ + { + "drilldown" : "Aaron Sherman", + "y" : 2, + "name" : "Aaron Sherman" + }, + { + "y" : 3, + "name" : "Adam Russell", + "drilldown" : "Adam Russell" + }, + { + "name" : "Alicia Bielsa", + "y" : 2, + "drilldown" : "Alicia Bielsa" + }, + { + "y" : 2, + "name" : "Andrezgz", + "drilldown" : "Andrezgz" + }, + { + "drilldown" : "Arne Sommer", + "name" : "Arne Sommer", + "y" : 3 + }, + { + "y" : 5, + "name" : "Athanasius", + "drilldown" : "Athanasius" + }, + { + "drilldown" : "Daniel Mantovani", + "y" : 2, + "name" : "Daniel Mantovani" + }, + { + "drilldown" : "Dave Jacoby", + "name" : "Dave Jacoby", + "y" : 4 + }, + { + "drilldown" : "David Ferrone", + "name" : "David Ferrone", + "y" : 2 + }, + { + "y" : 2, + "name" : "Duncan C. White", + "drilldown" : "Duncan C. White" + }, + { + "y" : 3, + "name" : "E. Choroba", + "drilldown" : "E. Choroba" + }, + { + "name" : "Feng Chang", + "y" : 5, + "drilldown" : "Feng Chang" + }, + { + "drilldown" : "Francis Whittle", + "name" : "Francis Whittle", + "y" : 3 + }, + { + "name" : "Gustavo Chaves", + "y" : 2, + "drilldown" : "Gustavo Chaves" + }, + { + "name" : "Humberto Massa", + "y" : 2, + "drilldown" : "Humberto Massa" + }, + { + "drilldown" : "Jaime Corchado", + "y" : 2, + "name" : "Jaime Corchado" + }, + { + "y" : 4, + "name" : "Jaldhar H. Vyas", + "drilldown" : "Jaldhar H. Vyas" + }, + { + "y" : 1, + "name" : "Joe Tym", + "drilldown" : "Joe Tym" + }, + { + "drilldown" : "Joelle Maslak", + "name" : "Joelle Maslak", + "y" : 7 + }, + { + "drilldown" : "Jorg Sommrey", + "y" : 1, + "name" : "Jorg Sommrey" + }, + { + "drilldown" : "Kevin Colyer", + "y" : 2, + "name" : "Kevin Colyer" + }, + { + "drilldown" : "Kian-Meng Ang", + "name" : "Kian-Meng Ang", + "y" : 3 + }, + { + "name" : "Lakpa Tashi Bhutia", + "y" : 2, + "drilldown" : "Lakpa Tashi Bhutia" + }, + { + "name" : "Laurent Rosenfeld", + "y" : 6, + "drilldown" : "Laurent Rosenfeld" + }, + { + "drilldown" : "Lubos Kolouch", + "name" : "Lubos Kolouch", + "y" : 2 + }, + { + "drilldown" : "Mark Senn", + "y" : 3, + "name" : "Mark Senn" + }, + { + "name" : "Maxim Nechaev", + "y" : 1, + "drilldown" : "Maxim Nechaev" + }, + { + "y" : 2, + "name" : "Ozzy", + "drilldown" : "Ozzy" + }, + { + "y" : 2, + "name" : "Paulo Custodio", + "drilldown" : "Paulo Custodio" + }, + { + "drilldown" : "Rakesh Kumar Shardiwal", + "y" : 2, + "name" : "Rakesh Kumar Shardiwal" + }, + { + "name" : "Ruben Westerberg", + "y" : 4, + "drilldown" : "Ruben Westerberg" + }, + { + "drilldown" : "Simon Proctor", + "y" : 2, + "name" : "Simon Proctor" + }, + { + "y" : 3, + "name" : "Steven Wilson", + "drilldown" : "Steven Wilson" + }, + { + "name" : "Stuart Little", + "y" : 2, + "drilldown" : "Stuart Little" + }, + { + "drilldown" : "Yozen Hernandez", + "y" : 3, + "name" : "Yozen Hernandez" + } + ] + } + ], + "chart" : { + "type" : "column" + }, + "xAxis" : { + "type" : "category" + }, + "legend" : { + "enabled" : 0 } } diff --git a/stats/pwc-current.json b/stats/pwc-current.json index 13243a4b64..bec75eadf1 100644 --- a/stats/pwc-current.json +++ b/stats/pwc-current.json @@ -1,4 +1,141 @@ { + "legend" : { + "enabled" : 0 + }, + "subtitle" : { + "text" : "[Champions: 23] Last updated at 2024-04-03 14:25:32 GMT" + }, + "chart" : { + "type" : "column" + }, + "yAxis" : { + "title" : { + "text" : "Total Solutions" + } + }, + "series" : [ + { + "colorByPoint" : 1, + "data" : [ + { + "y" : 4, + "name" : "Andrew Shitov", + "drilldown" : "Andrew Shitov" + }, + { + "drilldown" : "Asher Harvey-Smith", + "name" : "Asher Harvey-Smith", + "y" : 2 + }, + { + "drilldown" : "Athanasius", + "name" : "Athanasius", + "y" : 4 + }, + { + "y" : 2, + "name" : "Bruce Gray", + "drilldown" : "Bruce Gray" + }, + { + "drilldown" : "Dave Jacoby", + "name" : "Dave Jacoby", + "y" : 3 + }, + { + "drilldown" : "David Ferrone", + "name" : "David Fer |
