diff options
| author | Mohammad S Anwar <mohammad.anwar@yahoo.com> | 2024-07-04 12:25:56 +0100 |
|---|---|---|
| committer | Mohammad S Anwar <mohammad.anwar@yahoo.com> | 2024-07-04 12:25:56 +0100 |
| commit | ed2022e470f4f8e3d46e094fd0eb8e3b6d8ffddf (patch) | |
| tree | d9a48f059428aa9e71afdfd45fdbdf7c63353d58 | |
| parent | 884c521c4a2d6bdd80eee7ff296ff6f2f235c349 (diff) | |
| download | perlweeklychallenge-club-ed2022e470f4f8e3d46e094fd0eb8e3b6d8ffddf.tar.gz perlweeklychallenge-club-ed2022e470f4f8e3d46e094fd0eb8e3b6d8ffddf.tar.bz2 perlweeklychallenge-club-ed2022e470f4f8e3d46e094fd0eb8e3b6d8ffddf.zip | |
- Added solutions by Laurent Rosenfeld.
- Added solutions by Reinier Maliepaard.
- Added solutions by Luca Ferrari.
- Added solutions by Packy Anderson.
- Added solutions by Ali Moradi.
22 files changed, 1872 insertions, 1661 deletions
diff --git a/challenge-276/laurent-rosenfeld/blog.txt b/challenge-276/laurent-rosenfeld/blog.txt new file mode 100644 index 0000000000..0a72abba6c --- /dev/null +++ b/challenge-276/laurent-rosenfeld/blog.txt @@ -0,0 +1 @@ +https://blogs.perl.org/users/laurent_r/2024/07/perl-weekly-challenge-276-complete-day.html diff --git a/challenge-276/laurent-rosenfeld/perl/ch-1.pl b/challenge-276/laurent-rosenfeld/perl/ch-1.pl new file mode 100644 index 0000000000..3c6b15a0ba --- /dev/null +++ b/challenge-276/laurent-rosenfeld/perl/ch-1.pl @@ -0,0 +1,21 @@ +use strict; +use warnings; +use feature 'say'; + + +sub complete_day { + my @in = @_; + my $count = 0; + for my $i (0..$#in) { + for my $j ($i+1..$#in) { + $count++ if ($in[$i] + $in[$j]) % 24 == 0; + } + } + return $count; +} + +my @tests = ([<12 12 30 24 24>], [<72 48 24 5>], [<12 18 24>]); +for my $test (@tests) { + printf "%-15s => ", "@$test"; + say complete_day @$test; +} diff --git a/challenge-276/laurent-rosenfeld/raku/ch-1.raku b/challenge-276/laurent-rosenfeld/raku/ch-1.raku new file mode 100644 index 0000000000..891678b100 --- /dev/null +++ b/challenge-276/laurent-rosenfeld/raku/ch-1.raku @@ -0,0 +1,12 @@ +sub complete-day (@in) { + my $count = 0; + for @in.combinations: 2 -> @pair { + $count++ if ([+] @pair) %% 24; + } + return $count; + +my @tests = <12 12 30 24 24>, <72 48 24 5>, <12 18 24>; +for @tests -> @test { + printf "%-15s => ", "@test[]"; + say complete-day @test; +} diff --git a/challenge-276/reinier-maliepaard/blog.txt b/challenge-276/reinier-maliepaard/blog.txt new file mode 100644 index 0000000000..54151a6a28 --- /dev/null +++ b/challenge-276/reinier-maliepaard/blog.txt @@ -0,0 +1 @@ +https://reiniermaliepaard.nl/perl/pwc/index.php?id=pwc276 diff --git a/challenge-276/reinier-maliepaard/perl/ch-1.pl b/challenge-276/reinier-maliepaard/perl/ch-1.pl new file mode 100644 index 0000000000..a049f09289 --- /dev/null +++ b/challenge-276/reinier-maliepaard/perl/ch-1.pl @@ -0,0 +1,36 @@ +#!/usr/bin/perl +use strict; +use warnings; + +use Math::Combinatorics; + +sub complete_day { + + my $c = Math::Combinatorics->new ( count => 2, data => [@_], ); + + my $count = 0; + + while ( my @cmb = $c->next_combination ) { + + $count++ if ( ($cmb[0] + $cmb[1]) % 24 == 0 ); + + } + + return ($count); +} + +# Tests + +my (@hours); + +# Example 1 +@hours = (12, 12, 30, 24, 24); +print(complete_day(@hours), "\n"); # Output: 2 + +# Example 2 +@hours = (72, 48, 24, 5); +print(complete_day(@hours), "\n"); # Output: 3 + +# Example 3 +@hours = (12, 18, 24); +print(complete_day(@hours), "\n"); # Output: 0 diff --git a/challenge-276/reinier-maliepaard/perl/ch-2.pl b/challenge-276/reinier-maliepaard/perl/ch-2.pl new file mode 100644 index 0000000000..c8a75a2b00 --- /dev/null +++ b/challenge-276/reinier-maliepaard/perl/ch-2.pl @@ -0,0 +1,37 @@ +#!/usr/bin/perl +use strict; +use warnings; + +use Statistics::Frequency; + +sub max_freq { + + my ($count, $f, %freq) = (0); + + $f = Statistics::Frequency->new( @_ ); + %freq = $f->frequencies; + + $count += $f->frequencies_max for ( grep { $_ == $f->frequencies_max } values %freq ); + + return ($count); +} + +# Tests + +my (@ints); + +# Example 1 +@ints = (1, 2, 2, 4, 1, 5); +print(max_freq((@ints)), "\n"); # Output: 4 + +# Example 2 +@ints = (1, 2, 3, 4, 5); +print(max_freq((@ints)), "\n"); # Output: 5 + +# Example 3 +@ints = (1, 1, 3, 3, 3, 3); +print(max_freq((@ints)), "\n"); # Output: 4 + +# Example 4 +@ints = (1, 2, 2, 4); +print(max_freq((@ints)), "\n"); # Output: 2 diff --git a/stats/pwc-current.json b/stats/pwc-current.json index 8fc1dceb0b..d00729e8ee 100644 --- a/stats/pwc-current.json +++ b/stats/pwc-current.json @@ -2,47 +2,61 @@ "drilldown" : { "series" : [ { - "id" : "Dave Jacoby", "data" : [ [ "Perl", 2 + ], + [ + "Blog", + 1 ] ], - "name" : "Dave Jacoby" + "id" : "Ali Moradi", + "name" : "Ali Moradi" }, { - "id" : "David Ferrone", - "name" : "David Ferrone", + "name" : "Dave Jacoby", "data" : [ [ "Perl", 2 ] - ] + ], + "id" : "Dave Jacoby" }, { - "name" : "E. Choroba", + "id" : "David Ferrone", "data" : [ [ "Perl", 2 ] ], - "id" : "E. Choroba" + "name" : "David Ferrone" }, { "data" : [ [ - "Raku", + "Perl", 2 ] ], + "id" : "E. Choroba", + "name" : "E. Choroba" + }, + { "name" : "Feng Chang", - "id" : "Feng Chang" + "id" : "Feng Chang", + "data" : [ + [ + "Raku", + 2 + ] + ] }, { - "name" : "Joelle Maslak", + "id" : "Joelle Maslak", "data" : [ [ "Perl", @@ -53,50 +67,100 @@ 2 ] ], - "id" : "Joelle Maslak" + "name" : "Joelle Maslak" }, { - "id" : "Mariano Ortega", + "name" : "Laurent Rosenfeld", "data" : [ [ "Perl", - 2 + 1 + ], + [ + "Raku", + 1 + ], + [ + "Blog", + 1 ] ], - "name" : "Mariano Ortega" + "id" : "Laurent Rosenfeld" }, { "data" : [ [ "Raku", 2 + ], + [ + "Blog", + 9 ] ], + "id" : "Luca Ferrari", + "name" : "Luca Ferrari" + }, + { + "name" : "Mariano Ortega", + "id" : "Mariano Ortega", + "data" : [ + [ + "Perl", + 2 + ] + ] + }, + { "name" : "Mark Anderson", - "id" : "Mark Anderson" + "id" : "Mark Anderson", + "data" : [ + [ + "Raku", + 2 + ] + ] }, { - "id" : "Matthew Neleigh", "data" : [ [ "Perl", 2 ] ], + "id" : "Matthew Neleigh", "name" : "Matthew Neleigh" }, { - "id" : "Niels van Dijke", "name" : "Niels van Dijke", "data" : [ [ "Perl", 2 ] + ], + "id" : "Niels van Dijke" + }, + { + "name" : "Packy Anderson", + "id" : "Packy Anderson", + "data" : [ + [ + "Perl", + 2 + ], + [ + "Raku", + 2 + ], + [ + "Blog", + 1 + ] ] }, { - "id" : "Peter Campbell Smith", + "name" : "Peter Campbell Smith", "data" : [ [ "Perl", @@ -107,11 +171,10 @@ 1 ] ], - "name" : "Peter Campbell Smith" + "id" : "Peter Campbell Smith" }, { - "id" : "Robbie Hatley", - "name" : "Robbie Hatley", + "name" : "Reinier Maliepaard", "data" : [ [ "Perl", @@ -121,9 +184,25 @@ "Blog", 1 ] - ] + ], + "id" : "Reinier Maliepaard" }, { + "data" : [ + [ + "Perl", + 2 + ], + [ + "Blog", + 1 + ] + ], + "id" : "Robbie Hatley", + "name" : "Robbie Hatley" + }, + { + "name" : "Roger Bell_West", "id" : "Roger Bell_West", "data" : [ [ @@ -134,8 +213,7 @@ "Raku", 2 ] - ], - "name" : "Roger Bell_West" + ] }, { "id" : "Ryan Thompson", @@ -152,7 +230,7 @@ "name" : "Ryan Thompson" }, { - "id" : "Simon Green", + "name" : "Simon Green", "data" : [ [ "Perl", @@ -163,10 +241,11 @@ 1 ] ], - "name" : "Simon Green" + "id" : "Simon Green" }, { "name" : "Thomas Kohler", + "id" : "Thomas Kohler", "data" : [ [ "Perl", @@ -176,11 +255,9 @@ "Blog", 2 ] - ], - "id" : "Thomas Kohler" + ] }, { - "id" : "Ulrich Rieke", "name" : "Ulrich Rieke", "data" : [ [ @@ -191,9 +268,12 @@ "Raku", 2 ] - ] + ], + "id" : "Ulrich Rieke" }, { + "name" : "W. Luis Mochan", + "id" : "W. Luis Mochan", "data" : [ [ "Perl", @@ -203,67 +283,60 @@ "Blog", 1 ] - ], - "name" : "W. Luis Mochan", - "id" : "W. Luis Mochan" + ] } ] }, - "yAxis" : { - "title" : { - "text" : "Total Solutions" - } + "xAxis" : { + "type" : "category" + }, + "subtitle" : { + "text" : "[Champions: 22] Last updated at 2024-07-04 11:16:59 GMT" }, "title" : { "text" : "The Weekly Challenge - 276" }, - "plotOptions" : { - "series" : { - "dataLabels" : { - "enabled" : 1, - "format" : "{point.y}" - }, - "borderWidth" : 0 - } - }, - "chart" : { - "type" : "column" - }, - "legend" : { - "enabled" : 0 - }, "tooltip" : { + "pointFormat" : "<span style='color:{point.color}'>{point.name}</span>: <b>{point.y:f}</b><br/>", "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/>" + "headerFormat" : "<span style='font-size:11px'>{series.name}</span><br/>" }, - "xAxis" : { - "type" : "category" + "legend" : { + "enabled" : 0 }, - "subtitle" : { - "text" : "[Champions: 17] Last updated at 2024-07-02 12:13:56 GMT" + "yAxis" : { + "title" : { + "text" : "Total Solutions" + } }, "series" : [ { + "colorByPoint" : 1, + "name" : "The Weekly Challenge - 276", "data" : [ { + "drilldown" : "Ali Moradi", + "y" : 3, + "name" : "Ali Moradi" + }, + { "name" : "Dave Jacoby", "drilldown" : "Dave Jacoby", "y" : 2 }, { + "name" : "David Ferrone", "y" : 2, - "drilldown" : "David Ferrone", - "name" : "David Ferrone" + "drilldown" : "David Ferrone" }, { - "name" : "E. Choroba", "drilldown" : "E. Choroba", - "y" : 2 + "y" : 2, + "name" : "E. Choroba" }, { - "y" : 2, "drilldown" : "Feng Chang", + "y" : 2, "name" : "Feng Chang" }, { @@ -272,9 +345,19 @@ "y" : 4 }, { + "name" : "Laurent Rosenfeld", + "drilldown" : "Laurent Rosenfeld", + "y" : 3 + }, + { + "name" : "Luca Ferrari", + "y" : 11, + "drilldown" : "Luca Ferrari" + }, + { "name" : "Mariano Ortega", - "y" : 2, - "drilldown" : "Mariano Ortega" + "drilldown" : "Mariano Ortega", + "y" : 2 }, { "y" : 2, @@ -282,58 +365,78 @@ "name" : "Mark Anderson" }, { - "drilldown" : "Matthew Neleigh", + "name" : "Matthew Neleigh", "y" : 2, - "name" : "Matthew Neleigh" + "drilldown" : "Matthew Neleigh" }, { - "drilldown" : "Niels van Dijke", "y" : 2, + "drilldown" : "Niels van Dijke", "name" : "Niels van Dijke" }, { + "name" : "Packy Anderson", + "y" : 5, + "drilldown" : "Packy Anderson" + }, + { "name" : "Peter Campbell Smith", - "y" : 3, - "drilldown" : "Peter Campbell Smith" + "drilldown" : "Peter Campbell Smith", + "y" : 3 + }, + { + "name" : "Reinier Maliepaard", + "drilldown" : "Reinier Maliepaard", + "y" : 3 }, { - "name" : "Robbie Hatley", "y" : 3, - "drilldown" : "Robbie Hatley" + "drilldown" : "Robbie Hatley", + "name" : "Robbie Hatley" }, { - "name" : "Roger Bell_West", "drilldown" : "Roger Bell_West", - "y" : 4 + "y" : 4, + "name" : "Roger Bell_West" }, { - "y" : 3, + "name" : "Ryan Thompson", "drilldown" : "Ryan Thompson", - "name" : "Ryan Thompson" + "y" : 3 }, { - "name" : "Simon Green", "drilldown" : "Simon Green", - "y" : 3 + "y" : 3, + "name" : "Simon Green" }, { - "name" : "Thomas Kohler", "y" : 4, - "drilldown" : "Thomas Kohler" + "drilldown" : "Thomas Kohler", + "name" : "Thomas Kohler" }, { - "name" : "Ulrich Rieke", "drilldown" : "Ulrich Rieke", - "y" : 4 + "y" : 4, + "name" : "Ulrich Rieke" }, { "drilldown" : "W. Luis Mochan", "y" : 3, "name" : "W. Luis Mochan" } - ], - "colorByPoint" : 1, - "name" : "The Weekly Challenge - 276" + ] + } + ], + "chart" : { + "type" : "column" + }, + "plotOptions" : { + "series" : { + "dataLabels" : { + "enabled" : 1, + "format" : "{point.y}" + }, + "borderWidth" : 0 } - ] + } } diff --git a/stats/pwc-language-breakdown-summary.json b/stats/pwc-language-breakdown-summary.json index b85ea174b1..01330f4ebb 100644 --- a/stats/pwc-language-breakdown-summary.json +++ b/stats/pwc-language-breakdown-summary.json @@ -1,63 +1,63 @@ { - "xAxis" : { - "labels" : { - "style" : { - "fontSize" : "13px", - "fontFamily" : "Verdana, sans-serif" - } - }, - "type" : "category" + "chart" : { + "type" : "column" }, "series" : [ { + "dataLabels" : { + "align" : "right", + "color" : "#FFFFFF", + "enabled" : "true", + "style" : { + "fontSize" : "13px", + "fontFamily" : "Verdana, sans-serif" + }, + "format" : "{point.y:.0f}", + "y" : 10, + "rotation" : -90 + }, "name" : "Contributions", "data" : [ [ "Blog", - 5017 + 5030 ], [ "Perl", - 14288 + 14295 ], [ "Raku", - 8276 + 8281 ] - ], - "dataLabels" : { - "y" : 10, - "enabled" : "true", - "style" : { - "fontFamily" : "Verdana, sans-serif", - "fontSize" : "13px" - }, - "align" : "right", - "color" : "#FFFFFF", - "rotation" : -90, - "format" : "{point.y:.0f}" - } + ] } ], - "subtitle" : { - "text" : "Last updated at 2024-07-02 12:13:56 GMT" + "legend" : { + "enabled" : "false" + }, + "yAxis" : { + "min" : 0, + "title" : { + "text" : null + } }, "tooltip" : { "pointFormat" : "<b>{point.y:.0f}</b>" }, - "chart" : { - "type" : "column" - }, - "legend" : { - "enabled" : "false" - }, "title" : { "text" : "The Weekly Challenge Contributions [2019 - 2024]" }, - "yAxis" : { - "title" : { - "text" : null - }, - "min" : 0 + "subtitle" : { + "text" : "Last updated at 2024-07-04 11:16:59 GMT" + }, + "xAxis" : { + "type" : "category", + "labels" : { + "style" : { + "fontSize" : "13px", + "fontFamily" : "Verdana, sans-serif" + } + } } } diff --git a/stats/pwc-language-breakdown.json b/stats/pwc-language-breakdown.json index 952ee5b2fb..b54adbdc5a 100644 --- a/stats/pwc-language-breakdown.json +++ b/stats/pwc-language-breakdown.json @@ -1,19 +1,13 @@ { - "plotOptions" : { - "series" : { - "dataLabels" : { - "format" : "{point.y}", - "enabled" : 1 - }, - "borderWidth" : 0 - } - }, - "title" : { - "text" : "The Weekly Challenge Language" + "tooltip" : { + "headerFormat" : "<span style=\"font-size:11px\"></span>", + "followPointer" : "true", + "pointFormat" : "<span style=\"color:{point.color}\">Challenge {point.name}</span>: <b>{point.y:f}</b><br/>" }, "drilldown" : { "series" : [ { + "name" : "001", "id" : "001", "data" : [ [ @@ -28,11 +22,10 @@ "Blog", 12 ] - ], - "name" : "001" + ] }, { - "name" : "002", + "id" : "002", "data" : [ [ "Perl", @@ -47,9 +40,10 @@ 10 ] ], - "id" : "002" + "name" : "002" }, { + "id" : "003", "data" : [ [ "Perl", @@ -64,11 +58,9 @@ 9 ] ], - "name" : "003", - "id" : "003" + "name" : "003" }, { - "id" : "004", "data" : [ [ "Perl", @@ -83,11 +75,12 @@ 10 ] ], + "id" : "004", "name" : "004" }, { - "id" : "005", "name" : "005", + "id" : "005", "data" : [ [ "Perl", @@ -104,8 +97,6 @@ ] }, { - "id" : "006", - "name" : "006", "data" : [ [ "Perl", @@ -119,7 +110,9 @@ "Blog", 7 ] - ] + ], + "id" : "006", + "name" : "006" }, { "id" : "007", @@ -140,6 +133,7 @@ "name" : "007" }, { + "id" : "008", "data" : [ [ "Perl", @@ -154,8 +148,7 @@ 12 ] ], - "name" : "008", - "id" : "008" + "name" : "008" }, { "id" : "009", @@ -177,7 +170,6 @@ }, { "id" : "010", - "name" : "010", "data" : [ [ "Perl", @@ -191,11 +183,11 @@ "Blog", 11 ] - ] + ], + "name" : "010" }, { "id" : "011", - "name" : "011", "data" : [ [ "Perl", @@ -209,7 +201,8 @@ "Blog", 10 ] - ] + ], + "name" : "011" }, { "data" : [ @@ -226,11 +219,11 @@ 11 ] ], - "name" : "012", - "id" : "012" + "id" : "012", + "name" : "012" }, { - "name" : "013", + "id" : "013", "data" : [ [ "Perl", @@ -245,7 +238,7 @@ 13 ] ], - "id" : "013" + "name" : "013" }, { "data" : [ @@ -262,12 +255,11 @@ 15 ] ], - "name" : "014", - "id" : "014" + "id" : "014", + "name" : "014" }, { "id" : "015", - "name" : "015", "data" : [ [ "Perl", @@ -281,7 +273,8 @@ "Blog", 15 ] - ] + ], + "name" : "015" }, { "id" : "016", @@ -303,6 +296,7 @@ }, { "name" : "017", + "id" : "017", "data" : [ [ "Perl", @@ -316,11 +310,11 @@ "Blog", 12 ] - ], - "id" : "017" + ] }, { "name" : "018", + "id" : "018", "data" : [ [ "Perl", @@ -334,11 +328,11 @@ "Blog", 14 ] - ], - "id" : "018" + ] }, { "name" : "019", + "id" : "019", "data" : [ [ "Perl", @@ -352,11 +346,11 @@ "Blog", 13 ] - ], - "id" : "019" + ] }, { "name" : "020", + "id" : "020", "data" : [ [ "Perl", @@ -370,8 +364,7 @@ "Blog", 13 ] - ], - "id" : "020" + ] }, { "data" : [ @@ -388,8 +381,8 @@ 10 ] ], - "name" : "021", - "id" : "021" + "id" : "021", + "name" : "021" }, { "data" : [ @@ -406,10 +399,11 @@ 10 ] ], - "name" : "022", - "id" : "022" + "id" : "022", + "name" : "022" |
