diff options
| author | Mohammad S Anwar <mohammad.anwar@yahoo.com> | 2021-11-12 16:53:14 +0000 |
|---|---|---|
| committer | Mohammad S Anwar <mohammad.anwar@yahoo.com> | 2021-11-12 16:53:14 +0000 |
| commit | 901897526036bcf8cf8c270cd624c20a5df5bf9c (patch) | |
| tree | a180a9ccd9fb46f089f198ca37f95775110e5ef2 | |
| parent | d90e0c12bddeee813d77f9da4b8f0f493af1353a (diff) | |
| download | perlweeklychallenge-club-901897526036bcf8cf8c270cd624c20a5df5bf9c.tar.gz perlweeklychallenge-club-901897526036bcf8cf8c270cd624c20a5df5bf9c.tar.bz2 perlweeklychallenge-club-901897526036bcf8cf8c270cd624c20a5df5bf9c.zip | |
- Added solutions by Laurent Rosenfeld.
| -rw-r--r-- | challenge-138/laurent-rosenfeld/blog.txt | 1 | ||||
| -rw-r--r-- | challenge-138/laurent-rosenfeld/perl/ch-1.pl | 17 | ||||
| -rw-r--r-- | challenge-138/laurent-rosenfeld/perl/ch-2.pl | 30 | ||||
| -rw-r--r-- | challenge-138/laurent-rosenfeld/raku/ch-1.raku | 10 | ||||
| -rw-r--r-- | challenge-138/laurent-rosenfeld/raku/ch-2.raku | 24 | ||||
| -rw-r--r-- | stats/pwc-current.json | 185 | ||||
| -rw-r--r-- | stats/pwc-language-breakdown-summary.json | 62 | ||||
| -rw-r--r-- | stats/pwc-language-breakdown.json | 984 | ||||
| -rw-r--r-- | stats/pwc-leaders.json | 368 | ||||
| -rw-r--r-- | stats/pwc-summary-1-30.json | 20 | ||||
| -rw-r--r-- | stats/pwc-summary-121-150.json | 24 | ||||
| -rw-r--r-- | stats/pwc-summary-151-180.json | 48 | ||||
| -rw-r--r-- | stats/pwc-summary-181-210.json | 126 | ||||
| -rw-r--r-- | stats/pwc-summary-211-240.json | 42 | ||||
| -rw-r--r-- | stats/pwc-summary-241-270.json | 36 | ||||
| -rw-r--r-- | stats/pwc-summary-31-60.json | 34 | ||||
| -rw-r--r-- | stats/pwc-summary-61-90.json | 38 | ||||
| -rw-r--r-- | stats/pwc-summary-91-120.json | 122 | ||||
| -rw-r--r-- | stats/pwc-summary.json | 50 |
19 files changed, 1163 insertions, 1058 deletions
diff --git a/challenge-138/laurent-rosenfeld/blog.txt b/challenge-138/laurent-rosenfeld/blog.txt new file mode 100644 index 0000000000..46ceb36bb8 --- /dev/null +++ b/challenge-138/laurent-rosenfeld/blog.txt @@ -0,0 +1 @@ +http://blogs.perl.org/users/laurent_r/2021/11/perl-weekly-challenge-138-workdays-and-split-number.html diff --git a/challenge-138/laurent-rosenfeld/perl/ch-1.pl b/challenge-138/laurent-rosenfeld/perl/ch-1.pl new file mode 100644 index 0000000000..7cddeb7667 --- /dev/null +++ b/challenge-138/laurent-rosenfeld/perl/ch-1.pl @@ -0,0 +1,17 @@ +use warnings; +use feature qw/say/; +use Time::Piece; + +sub work_days { + my $y = shift; + my $count = 52 * 5; + my $t = Time::Piece->strptime("$y Dec 31", '%Y %b %e'); + my $last_d = $t->day_of_week; + $count++ if $last_d > 0 and $last_d < 6; + if ($t->is_leap_year) { + my $thirtieth = ($last_d - 1) % 7; + $count++ if $thirtieth > 0 and $thirtieth < 6; + } + return $count; +} +say "$_ -> ", work_days $_ for 2000..2021; diff --git a/challenge-138/laurent-rosenfeld/perl/ch-2.pl b/challenge-138/laurent-rosenfeld/perl/ch-2.pl new file mode 100644 index 0000000000..961f7b9381 --- /dev/null +++ b/challenge-138/laurent-rosenfeld/perl/ch-2.pl @@ -0,0 +1,30 @@ +use strict; +use warnings; +use feature "say"; + +my ($found, $root); + +sub partition { + my ($sum, @in) = @_; + if (scalar @in == 0) { + $found = 1 if $sum == $root; + return; + } + for my $i (1..(scalar @in)) { + my $new_sum = $sum + join "", @in[0..($i-1)]; + last if $new_sum > $root; + partition ($new_sum, @in[$i..$#in]); + } +} + +sub split_square { + my $sq = shift; + $root = int sqrt($sq); + say "$sq is not a perfect square\n" and return 0 if $root ** 2 != $sq; + $found = 0; + partition(0, split //, $sq); + return $found; +} +for my $test (qw<1 27 81 100 225 1296 6561 9801>) { + printf "%5d\t%d\n", $test , split_square $test; +} diff --git a/challenge-138/laurent-rosenfeld/raku/ch-1.raku b/challenge-138/laurent-rosenfeld/raku/ch-1.raku new file mode 100644 index 0000000000..443028e648 --- /dev/null +++ b/challenge-138/laurent-rosenfeld/raku/ch-1.raku @@ -0,0 +1,10 @@ +sub work-days (UInt $y) { + my $new-year-day = Date.new("$y-01-01"); + my $fifty-two-weeks-later = $new-year-day.later(:52weeks); + my $count = 52 * 5; + $count++ if 1 <= $fifty-two-weeks-later.day-of-week < 6; + return $count if $fifty-two-weeks-later.day == 31; + $count++ if 1 <= $fifty-two-weeks-later.later(:1days).day-of-week < 6; + return $count; +} +say "$_ -> ", work-days $_ for 2000..2021; diff --git a/challenge-138/laurent-rosenfeld/raku/ch-2.raku b/challenge-138/laurent-rosenfeld/raku/ch-2.raku new file mode 100644 index 0000000000..5ef9b5d6cd --- /dev/null +++ b/challenge-138/laurent-rosenfeld/raku/ch-2.raku @@ -0,0 +1,24 @@ +use v6; + +sub partition (Int $sum is copy, @in) { + if @in.elems == 0 { + $*found = 1 if $sum == $*root; + return; + } + for 1..@in.elems -> $i { + my $new-sum = $sum + join "", @in[0..($i-1)]; + last if $new-sum > $*root; + partition $new-sum, @in[$i..@in.end]; + } +} + +sub split-square (UInt $sq) { + my $*root = sqrt($sq).Int; + say "$sq is not a perfect square\n" and return 0 if $*root² != $sq; + my $*found = 0; + partition(0, $sq.comb); + return $*found; +} +for <1 27 81 100 225 1296 6561 9801> -> $test { + say $test.fmt("%5d\t") , split-square $test; +} diff --git a/stats/pwc-current.json b/stats/pwc-current.json index 1f97eab38f..2b25ec9714 100644 --- a/stats/pwc-current.json +++ b/stats/pwc-current.json @@ -2,29 +2,41 @@ "chart" : { "type" : "column" }, + "subtitle" : { + "text" : "[Champions: 18] Last updated at 2021-11-12 16:49:07 GMT" + }, + "title" : { + "text" : "The Weekly Challenge - 138" + }, + "tooltip" : { + "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/>", + "followPointer" : 1 + }, "drilldown" : { "series" : [ { - "name" : "Andrew Shitov", "data" : [ [ "Raku", 1 ] ], + "name" : "Andrew Shitov", "id" : "Andrew Shitov" }, { + "name" : "Bob Lied", "id" : "Bob Lied", "data" : [ [ "Perl", 2 ] - ], - "name" : "Bob Lied" + ] }, { + "id" : "Dave Jacoby", "name" : "Dave Jacoby", "data" : [ [ @@ -35,8 +47,7 @@ "Blog", 1 ] - ], - "id" : "Dave Jacoby" + ] }, { "id" : "E. Choroba", @@ -49,8 +60,6 @@ ] }, { - "id" : "James Smith", - "name" : "James Smith", "data" : [ [ "Perl", @@ -60,20 +69,41 @@ "Blog", 1 ] - ] + ], + "id" : "James Smith", + "name" : "James Smith" }, { + "data" : [ + [ + "Perl", + 2 + ] + ], "id" : "Jorg Sommrey", - "name" : "Jorg Sommrey", + "name" : "Jorg Sommrey" + }, + { + "id" : "Laurent Rosenfeld", + "name" : "Laurent Rosenfeld", "data" : [ [ "Perl", 2 + ], + [ + "Raku", + 2 + ], + [ + "Blog", + 1 ] ] }, { "name" : "Luca Ferrari", + "id" : "Luca Ferrari", "data" : [ [ "Raku", @@ -83,22 +113,19 @@ "Blog", 4 ] - ], - "id" : "Luca Ferrari" + ] }, { + "id" : "Mark Anderson", + "name" : "Mark Anderson", "data" : [ [ "Raku", 2 ] - ], - "name" : "Mark Anderson", - "id" : "Mark Anderson" + ] }, { - "id" : "Mohammad S Anwar", - "name" : "Mohammad S Anwar", "data" : [ [ "Perl", @@ -108,26 +135,28 @@ "Raku", 1 ] - ] + ], + "id" : "Mohammad S Anwar", + "name" : "Mohammad S Anwar" }, { - "id" : "Paulo Custodio", - "name" : "Paulo Custodio", "data" : [ [ "Perl", 2 ] - ] + ], + "name" : "Paulo Custodio", + "id" : "Paulo Custodio" }, { - "id" : "Peter Campbell Smith", "data" : [ [ "Perl", 2 ] ], + "id" : "Peter Campbell Smith", "name" : "Peter Campbell Smith" }, { @@ -141,7 +170,6 @@ "id" : "Robert DiCicco" }, { - "name" : "Roger Bell_West", "data" : [ [ "Perl", @@ -156,9 +184,11 @@ 1 ] ], - "id" : "Roger Bell_West" + "id" : "Roger Bell_West", + "name" : "Roger Bell_West" }, { + "id" : "Simon Green", "name" : "Simon Green", "data" : [ [ @@ -169,10 +199,10 @@ "Blog", 1 ] - ], - "id" : "Simon Green" + ] }, { + "name" : "Steven Wilson", "id" : "Steven Wilson", "data" : [ [ @@ -183,12 +213,11 @@ "Blog", 1 ] - ], - "name" : "Steven Wilson" + ] }, { - "id" : "Ulrich Rieke", "name" : "Ulrich Rieke", + "id" : "Ulrich Rieke", "data" : [ [ "Perl", @@ -201,8 +230,8 @@ ] }, { - "id" : "W. Luis Mochan", "name" : "W. Luis Mochan", + "id" : "W. Luis Mochan", "data" : [ [ "Perl", @@ -216,72 +245,69 @@ } ] }, - "tooltip" : { - "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/>", - "followPointer" : 1 - }, - "title" : { - "text" : "The Weekly Challenge - 138" - }, "series" : [ { - "colorByPoint" : 1, + "name" : "The Weekly Challenge - 138", "data" : [ { - "y" : 1, "name" : "Andrew Shitov", + "y" : 1, "drilldown" : "Andrew Shitov" }, { - "name" : "Bob Lied", "drilldown" : "Bob Lied", - "y" : 2 + "y" : 2, + "name" : "Bob Lied" }, { - "y" : 3, "name" : "Dave Jacoby", + "y" : 3, "drilldown" : "Dave Jacoby" }, { - "y" : 2, + "name" : "E. Choroba", "drilldown" : "E. Choroba", - "name" : "E. Choroba" + "y" : 2 }, { - "drilldown" : "James Smith", "name" : "James Smith", - "y" : 3 + "y" : 3, + "drilldown" : "James Smith" }, { "name" : "Jorg Sommrey", - "drilldown" : "Jorg Sommrey", - "y" : 2 + "y" : 2, + "drilldown" : "Jorg Sommrey" + }, + { + "name" : "Laurent Rosenfeld", + "drilldown" : "Laurent Rosenfeld", + "y" : 5 }, { + "drilldown" : "Luca Ferrari", "y" : 6, - "name" : "Luca Ferrari", - "drilldown" : "Luca Ferrari" + "name" : "Luca Ferrari" }, { - "drilldown" : "Mark Anderson", "name" : "Mark Anderson", + "drilldown" : "Mark Anderson", "y" : 2 }, { + "name" : "Mohammad S Anwar", "y" : 2, - "drilldown" : "Mohammad S Anwar", - "name" : "Mohammad S Anwar" + "drilldown" : "Mohammad S Anwar" }, { - "y" : 2, "name" : "Paulo Custodio", - "drilldown" : "Paulo Custodio" + "drilldown" : "Paulo Custodio", + "y" : 2 }, { - "y" : 2, + "name" : "Peter Campbell Smith", "drilldown" : "Peter Campbell Smith", - "name" : "Peter Campbell Smith" + "y" : 2 }, { "name" : "Robert DiCicco", @@ -289,48 +315,34 @@ "y" : 2 }, { - "y" : 5, "name" : "Roger Bell_West", + "y" : 5, "drilldown" : "Roger Bell_West" }, { "y" : 3, - "name" : "Simon Green", - "drilldown" : "Simon Green" + "drilldown" : "Simon Green", + "name" : "Simon Green" }, { + "y" : 2, "drilldown" : "Steven Wilson", - "name" : "Steven Wilson", - "y" : 2 + "name" : "Steven Wilson" }, { + "name" : "Ulrich Rieke", "y" : 4, - "drilldown" : "Ulrich Rieke", - "name" : "Ulrich Rieke" + "drilldown" : "Ulrich Rieke" }, { "y" : 3, - "name" : "W. Luis Mochan", - "drilldown" : "W. Luis Mochan" + "drilldown" : "W. Luis Mochan", + "name" : "W. Luis Mochan" } ], - "name" : "The Weekly Challenge - 138" + "colorByPoint" : 1 } ], - "xAxis" : { - "type" : "category" - }, - "subtitle" : { - "text" : "[Champions: 17] Last updated at 2021-11-12 16:41:17 GMT" - }, - "yAxis" : { - "title" : { - "text" : "Total Solutions" - } - }, - "legend" : { - "enabled" : 0 - }, "plotOptions" : { "series" : { "dataLabels" : { @@ -339,5 +351,16 @@ }, "borderWidth" : 0 } + }, + "xAxis" : { + "type" : "category" + }, + "legend" : { + "enabled" : 0 + }, + "yAxis" : { + "title" : { + "text" : "Total Solutions" + } } } diff --git a/stats/pwc-language-breakdown-summary.json b/stats/pwc-language-breakdown-summary.json index 1976068e16..066ffbd1a5 100644 --- a/stats/pwc-language-breakdown-summary.json +++ b/stats/pwc-language-breakdown-summary.json @@ -1,4 +1,13 @@ { + "yAxis" : { + "min" : 0, + "title" : { + "text" : null + } + }, + "legend" : { + "enabled" : "false" + }, "xAxis" : { "labels" : { "style" : { @@ -10,54 +19,45 @@ }, "series" : [ { - "dataLabels" : { - "enabled" : "true", - "y" : 10, - "align" : "right", - "rotation" : -90, - "style" : { - "fontSize" : "13px", - "fontFamily" : "Verdana, sans-serif" - }, - "format" : "{point.y:.0f}", - "color" : "#FFFFFF" - }, - "name" : "Contributions", "data" : [ [ "Blog", - 2006 + 2007 ], [ "Perl", - 6613 + 6615 ], [ "Raku", - 4006 + 4008 ] - ] + ], + "dataLabels" : { + "enabled" : "true", + "color" : "#FFFFFF", + "align" : "right", + "style" : { + "fontFamily" : "Verdana, sans-serif", + "fontSize" : "13px" + }, + "format" : "{point.y:.0f}", + "rotation" : -90, + "y" : 10 + }, + "name" : "Contributions" } ], - "title" : { - "text" : "The Weekly Challenge Contributions [2019 - 2021]" - }, "tooltip" : { "pointFormat" : "<b>{point.y:.0f}</b>" }, - "chart" : { - "type" : "column" - }, - "legend" : { - "enabled" : "false" + "title" : { + "text" : "The Weekly Challenge Contributions [2019 - 2021]" }, "subtitle" : { - "text" : "Last updated at 2021-11-12 16:41:17 GMT" + "text" : "Last updated at 2021-11-12 16:49:07 GMT" }, - "yAxis" : { - "min" : 0, - "title" : { - "text" : null - } + "chart" : { + "type" : "column" } } diff --git a/stats/pwc-language-breakdown.json b/stats/pwc-language-breakdown.json index f81c4bde30..b3a3d0f56f 100644 --- a/stats/pwc-language-breakdown.json +++ b/stats/pwc-language-breakdown.json @@ -1,40 +1,25 @@ { - "plotOptions" : { - "series" : { - "borderWidth" : 0, - "dataLabels" : { - "enabled" : 1, - "format" : "{point.y}" - } - } - }, "legend" : { "enabled" : "false" }, - "subtitle" : { - "text" : "Click the columns to drilldown the language breakdown. Last updated at 2021-11-12 16:41:17 GMT" - }, "yAxis" : { "title" : { "text" : "Total Solutions" } }, - "xAxis" : { - "type" : "category" - }, "series" : [ { - "name" : "The Weekly Challenge Languages", + "colorByPoint" : "true", "data" : [ { + "y" : 161, "drilldown" : "001", - "name" : "#001", - "y" : 161 + "name" : "#001" }, { - "y" : 125, "name" : "#002", - "drilldown" : "002" + "drilldown" : "002", + "y" : 125 }, { "y" : 81, @@ -42,14 +27,14 @@ "name" : "#003" }, { - "drilldown" : "004", "name" : "#004", - "y" : 99 + "y" : 99, + "drilldown" : "004" }, { + "name" : "#005", "y" : 78, - "drilldown" : "005", - "name" : "#005" + "drilldown" : "005" }, { "name" : "#006", @@ -57,49 +42,49 @@ "y" : 58 }, { - "name" : "#007", "drilldown" : "007", - "y" : 64 + "y" : 64, + "name" : "#007" }, { - "drilldown" : "008", "name" : "#008", + "drilldown" : "008", "y" : 78 }, { - "drilldown" : "009", "name" : "#009", + "drilldown" : "009", "y" : 76 }, { - "y" : 65, + "name" : "#010", "drilldown" : "010", - "name" : "#010" + "y" : 65 }, { - "name" : "#011", "drilldown" : "011", - "y" : 85 + "y" : 85, + "name" : "#011" }, { - "name" : "#012", + "y" : 89, "drilldown" : "012", - "y" : 89 + "name" : "#012" }, { - "name" : "#013", "drilldown" : "013", - "y" : 85 + "y" : 85, + "name" : "#013" }, { - "drilldown" : "014", "name" : "#014", - "y" : 101 + "y" : 101, + "drilldown" : "014" }, { - "name" : "#015", + "y" : 99, "drilldown" : "015", - "y" : 99 + "name" : "#015" }, { "y" : 71, @@ -107,8 +92,8 @@ "name" : "#016" }, { - "y" : 84, "drilldown" : "017", + "y" : 84, "name" : "#017" }, { @@ -118,37 +103,37 @@ }, { "name" : "#019", - "drilldown" : "019", - "y" : 103 + "y" : 103, + "drilldown" : "019" }, { - "name" : "#020", + "y" : 101, "drilldown" : "020", - "y" : 101 + "name" : "#020" }, { - "drilldown" : "021", "name" : "#021", - "y" : 72 + "y" : 72, + "drilldown" : "021" }, { - "y" : 68, "name" : "#022", - "drilldown" : "022" + "drilldown" : "022", + "y" : 68 }, { - "y" : 97, + "name" : "#023", "drilldown" : "023", - "name" : "#023" + "y" : 97 }, { - "y" : 75, + "name" : "#024", "drilldown" : "024", - "name" : "#024" + "y" : 75 }, { - "y" : 59, "drilldown" : "025", + "y" : 59, "name" : "#025" }, { @@ -157,89 +142,89 @@ "y" : 74 }, { - "name" : "#027", + "y" : 60, "drilldown" : "027", - "y" : 60 + "name" : "#027" }, { - "drilldown" : "028", "name" : "#028", + "drilldown" : "028", "y" : 80 }, { - "y" : 79, "name" : "#029", + "y" : 79, "drilldown" : "029" }, { - "y" : 117, + "name" : "#030", "drilldown" : "030", - "name" : "#030" + "y" : 117 }, { - "y" : 89, "drilldown" : "031", + "y" : 89, "name" : "#031" }, { - "y" : 94, + "name" : "#032", "drilldown" : "032", - "name" : "#032" + "y" : 94 }, { - "drilldown" : "033", "name" : "#033", + "drilldown" : "033", "y" : 110 }, { "drilldown" : "034", - "name" : "#034", - "y" : 64 + "y" : 64, + "name" : "#034" }, { - "drilldown" : "035", "name" : "#035", + "drilldown" : "035", "y" : 64 }, { - "drilldown" : "036", "name" : "#036", - "y" : 68 + "y" : 68, + "drilldown" : "036" }, { - "name" : "#037", + "y" : 67, "drilldown" : "037", - "y" : 67 + "name" : "#037" }, { + "drilldown" : "038", "y" : 68, - "name" : "#038", - "drilldown" : "038" + "name" : "#038" }, { + "drilldown" : "039", "y" : 62, - "name" : "#039", - "drilldown" : "039" + "name" : "#039" }, { - "y" : 73, "name" : "#040", + "y" : 73, "drilldown" : "040" }, { - "y" : 76, "name" : "#041", + "y" : 76, "drilldown" : "041" }, { - "drilldown" : "042", "name" : "#042", + "drilldown" : "042", "y" : 92 }, { + "drilldown" : "043", "y" : 68, - "name" : "#043", - "drilldown" : "043" + "name" : "#043" }, { "name" : "#044", @@ -253,8 +238,8 @@ }, { "y" : 87, - "name" : "#046", - "drilldown" : "046" + "drilldown" : "046", + "name" : "#046" }, { "y" : 84, @@ -263,38 +248,38 @@ }, { "name" : "#048", - "drilldown" : "048", - "y" : 108 + "y" : 108, + "drilldown" : "048" }, { "y" : 89, - "name" : "#049", - "drilldown" : "049" + "drilldown" : "049", + "name" : "#049" }, { - "drilldown" : "050", "name" : "#050", - "y" : 98 + "y" : 98, + "drilldown" : "050" }, { "name" : "#051", - "drilldown" : "051", - "y" : 89 + "y" : 89, + "drilldown" : "051" }, { - "y" : 91, "drilldown" : "052", + "y" : 91, "name" : "#052" }, { "drilldown" : "053", - "name" : "#053", - "y" : 101 + "y" : 101, + "name" : "#053" }, { "y" : 103, - "name" : "#054", - "drilldown" : "054" + "drilldown" : "054", + "name" : "#054" }, { "name" : "#055", @@ -302,9 +287,9 @@ "y" : 88 }, { + "drilldown" : "056", "y" : 95, - "name" : "#056", - "drilldown" : "056" + "name" : "#056" }, { "name" : "#057", @@ -312,14 +297,14 @@ "y" : 80 }, { - "y" : 69, "name" : "#058", - "drilldown" : "058" + "drilldown" : "058", + "y" : 69 }, { + "y" : 89, "drilldown" : "059", - "name" : "#059", - "y" : 89 + "name" : "#059" }, { "name" : "#060", @@ -332,84 +317,84 @@ "name" : "#061" |
