diff options
| author | Mohammad S Anwar <mohammad.anwar@yahoo.com> | 2019-07-30 19:30:34 +0100 |
|---|---|---|
| committer | Mohammad S Anwar <mohammad.anwar@yahoo.com> | 2019-07-30 19:30:34 +0100 |
| commit | 1dbcabd8e08dd98a40fe42ee3ce63e5755cdaaef (patch) | |
| tree | aa8c4ef405055daafaa57f0117f02a6362ec27b9 | |
| parent | 8e524f0d476c07fa2fc984cb10d47c08b609a1bc (diff) | |
| download | perlweeklychallenge-club-1dbcabd8e08dd98a40fe42ee3ce63e5755cdaaef.tar.gz perlweeklychallenge-club-1dbcabd8e08dd98a40fe42ee3ce63e5755cdaaef.tar.bz2 perlweeklychallenge-club-1dbcabd8e08dd98a40fe42ee3ce63e5755cdaaef.zip | |
- Added solutions by Duane Powell.
| -rw-r--r-- | challenge-019/duane-powell/perl5/ch-1.pl | 45 | ||||
| -rw-r--r-- | challenge-019/duane-powell/perl5/ch-2.pl | 43 | ||||
| -rw-r--r-- | stats/pwc-current.json | 257 | ||||
| -rw-r--r-- | stats/pwc-language-breakdown-summary.json | 50 | ||||
| -rw-r--r-- | stats/pwc-language-breakdown.json | 172 | ||||
| -rw-r--r-- | stats/pwc-leaders.json | 508 | ||||
| -rw-r--r-- | stats/pwc-summary-1-30.json | 36 | ||||
| -rw-r--r-- | stats/pwc-summary-31-60.json | 32 | ||||
| -rw-r--r-- | stats/pwc-summary-61-90.json | 42 | ||||
| -rw-r--r-- | stats/pwc-summary-91-120.json | 48 | ||||
| -rw-r--r-- | stats/pwc-summary.json | 250 |
11 files changed, 793 insertions, 690 deletions
diff --git a/challenge-019/duane-powell/perl5/ch-1.pl b/challenge-019/duane-powell/perl5/ch-1.pl new file mode 100644 index 0000000000..9ecc266ec0 --- /dev/null +++ b/challenge-019/duane-powell/perl5/ch-1.pl @@ -0,0 +1,45 @@ +#!/usr/bin/perl +use Modern::Perl; +use DateTime; + +# Find all year/months from 1900 to 2019 with 5 full weekends. +# Noting that it must be a month with 31 days and begin on a Friday yields: +my $FRIDAY = 5; + +# Popluate a hash with months that have 31 days +my @mon_val = qw( Jan Mar May Jul Aug Oct Dec ); +my @mon_key = (1,3,5,7,8,10,12); +my %mon_31_days; +@mon_31_days{@mon_key} = @mon_val; + +foreach my $year (1900 .. 2019) { + foreach my $month (keys %mon_31_days) { + my $dt = DateTime->new( + 'year' => $year, + 'month' => $month, + 'day' => 1, + ); + + if ($dt->day_of_week == $FRIDAY) { + say "$mon_31_days{$month} $year"; + } + } +} + +__END__ + +./ch1.pl +Mar 1901 +Aug 1902 +May 1903 +Jan 1904 +Jul 1904 +Dec 1905 +... +Mar 2013 +Aug 2014 +May 2015 +Jan 2016 +Jul 2016 +Dec 2017 +Mar 2019 diff --git a/challenge-019/duane-powell/perl5/ch-2.pl b/challenge-019/duane-powell/perl5/ch-2.pl new file mode 100644 index 0000000000..946df42db5 --- /dev/null +++ b/challenge-019/duane-powell/perl5/ch-2.pl @@ -0,0 +1,43 @@ +#!/usr/bin/perl +use Modern::Perl; + +# A script that can wrap the given paragraph at a specified column using the greedy algorithm + +my ($max_col,$text) = @ARGV; +$max_col ||= 45; +$text ||= "Hello world, it's a very nice day! The sun is shining. Rainbows and Unicorns!"; + +my @word = split(/ /,$text); +my %word = map { $_ => length($_) } @word; + +my $line = ""; +my $c = 0; +foreach my $w (@word) { + if (($c + $word{$w}) <= $max_col) { + $c += $word{$w}+1; + $line .= "$w "; + } else { + say $line; + $line = "$w "; + $c = $word{$w}; + } +} +say $line if ($line); + +__END__ + +./ch2.pl 15 "Hello world, it's a very nice day! The sun is shining. Rainbows and Unicorns!" +Hello world, +it's a very nice +day! The sun is +shining. +Rainbows and +Unicorns! + +./ch2.pl 45 "Hello world, it's a very nice day! The sun is shining. Rainbows and Unicorns!" +Hello world, it's a very nice day! The sun is +shining. Rainbows and Unicorns! + +./ch2.pl 75 "Hello world, it's a very nice day! The sun is shining. Rainbows and Unicorns!" +Hello world, it's a very nice day! The sun is shining. Rainbows and +Unicorns! diff --git a/stats/pwc-current.json b/stats/pwc-current.json index 20620f2e2e..77db04b95f 100644 --- a/stats/pwc-current.json +++ b/stats/pwc-current.json @@ -4,111 +4,10 @@ "text" : "Total Solutions" } }, - "chart" : { - "type" : "column" - }, - "legend" : { - "enabled" : 0 - }, - "subtitle" : { - "text" : "[Champions: 13] Last updated at 2019-07-30 18:20:21 GMT" - }, - "xAxis" : { - "type" : "category" - }, - "tooltip" : { - "followPointer" : 1, - "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/>" - }, - "series" : [ - { - "name" : "Perl Weekly Challenge - 019", - "data" : [ - { - "drilldown" : "Arne Sommer", - "name" : "Arne Sommer", - "y" : 3 - }, - { - "name" : "Dave Cross", - "y" : 2, - "drilldown" : "Dave Cross" - }, - { - "name" : "Dave Jacoby", - "y" : 2, - "drilldown" : "Dave Jacoby" - }, - { - "drilldown" : "E. Choroba", - "y" : 2, - "name" : "E. Choroba" - }, - { - "drilldown" : "Gustavo Chaves", - "name" : "Gustavo Chaves", - "y" : 2 - }, - { - "y" : 5, - "name" : "Laurent Rosenfeld", - "drilldown" : "Laurent Rosenfeld" - }, - { - "drilldown" : "Lubos Kolouch", - "name" : "Lubos Kolouch", - "y" : 2 - }, - { - "y" : 1, - "name" : "Mark Anderson", - "drilldown" : "Mark Anderson" - }, - { - "drilldown" : "Pete Houston", - "y" : 2, - "name" : "Pete Houston" - }, - { - "name" : "Roger Bell West", - "y" : 2, - "drilldown" : "Roger Bell West" - }, - { - "drilldown" : "Simon Proctor", - "name" : "Simon Proctor", - "y" : 2 - }, - { - "drilldown" : "Steven Wilson", - "y" : 2, - "name" : "Steven Wilson" - }, - { - "drilldown" : "Walt Mankowski", - "name" : "Walt Mankowski", - "y" : 2 - } - ], - "colorByPoint" : 1 - } - ], - "title" : { - "text" : "Perl Weekly Challenge - 019" - }, - "plotOptions" : { - "series" : { - "dataLabels" : { - "enabled" : 1, - "format" : "{point.y}" - }, - "borderWidth" : 0 - } - }, "drilldown" : { "series" : [ { + "id" : "Arne Sommer", "data" : [ [ "Perl 6", @@ -119,50 +18,60 @@ 1 ] ], - "name" : "Arne Sommer", - "id" : "Arne Sommer" + "name" : "Arne Sommer" }, { - "id" : "Dave Cross", "name" : "Dave Cross", "data" : [ [ "Perl 5", 2 ] + ], + "id" : "Dave Cross" + }, + { + "name" : "Dave Jacoby", + "id" : "Dave Jacoby", + "data" : [ + [ + "Perl 5", + 2 + ] ] }, { + "name" : "Duane Powell", "data" : [ [ "Perl 5", 2 ] ], - "name" : "Dave Jacoby", - "id" : "Dave Jacoby" + "id" : "Duane Powell" }, { - "name" : "E. Choroba", "data" : [ [ "Perl 5", 2 ] ], - "id" : "E. Choroba" + "id" : "E. Choroba", + "name" : "E. Choroba" }, { + "name" : "Gustavo Chaves", "data" : [ [ "Perl 5", 2 ] ], - "name" : "Gustavo Chaves", "id" : "Gustavo Chaves" }, { + "name" : "Laurent Rosenfeld", "data" : [ [ "Perl 5", @@ -177,7 +86,6 @@ 1 ] ], - "name" : "Laurent Rosenfeld", "id" : "Laurent Rosenfeld" }, { @@ -191,28 +99,28 @@ "id" : "Lubos Kolouch" }, { + "name" : "Mark Anderson", "id" : "Mark Anderson", "data" : [ [ "Perl 5", 1 ] - ], - "name" : "Mark Anderson" + ] }, { + "name" : "Pete Houston", "data" : [ [ "Perl 5", 2 ] ], - "name" : "Pete Houston", "id" : "Pete Houston" }, { - "id" : "Roger Bell West", "name" : "Roger Bell West", + "id" : "Roger Bell West", "data" : [ [ "Perl 5", @@ -221,35 +129,142 @@ ] }, { - "name" : "Simon Proctor", + "id" : "Simon Proctor", "data" : [ [ "Perl 6", 2 ] ], - "id" : "Simon Proctor" + "name" : "Simon Proctor" }, { "name" : "Steven Wilson", + "id" : "Steven Wilson", "data" : [ [ "Perl 5", 2 ] - ], - "id" : "Steven Wilson" + ] }, { - "name" : "Walt Mankowski", "data" : [ [ "Perl 5", 2 ] ], - "id" : "Walt Mankowski" + "id" : "Walt Mankowski", + "name" : "Walt Mankowski" } ] + }, + "plotOptions" : { + "series" : { + "dataLabels" : { + "format" : "{point.y}", + "enabled" : 1 + }, + "borderWidth" : 0 + } + }, + "title" : { + "text" : "Perl Weekly Challenge - 019" + }, + "subtitle" : { + "text" : "[Champions: 14] Last updated at 2019-07-30 18:30:20 GMT" + }, + "legend" : { + "enabled" : 0 + }, + "xAxis" : { + "type" : "category" + }, + "series" : [ + { + "data" : [ + { + "y" : 3, + "drilldown" : "Arne Sommer", + "name" : "Arne Sommer" + }, + { + "y" : 2, + "drilldown" : "Dave Cross", + "name" : "Dave Cross" + }, + { + "drilldown" : "Dave Jacoby", + "y" : 2, + "name" : "Dave Jacoby" + }, + { + "y" : 2, + "drilldown" : "Duane Powell", + "name" : "Duane Powell" + }, + { + "drilldown" : "E. Choroba", + "name" : "E. Choroba", + "y" : 2 + }, + { + "drilldown" : "Gustavo Chaves", + "name" : "Gustavo Chaves", + "y" : 2 + }, + { + "name" : "Laurent Rosenfeld", + "drilldown" : "Laurent Rosenfeld", + "y" : 5 + }, + { + "drilldown" : "Lubos Kolouch", + "name" : "Lubos Kolouch", + "y" : 2 + }, + { + "drilldown" : "Mark Anderson", + "y" : 1, + "name" : "Mark Anderson" + }, + { + "drilldown" : "Pete Houston", + "y" : 2, + "name" : "Pete Houston" + }, + { + "y" : 2, + "drilldown" : "Roger Bell West", + "name" : "Roger Bell West" + }, + { + "drilldown" : "Simon Proctor", + "y" : 2, + "name" : "Simon Proctor" + }, + { + "name" : "Steven Wilson", + "drilldown" : "Steven Wilson", + "y" : 2 + }, + { + "drilldown" : "Walt Mankowski", + "name" : "Walt Mankowski", + "y" : 2 + } + ], + "colorByPoint" : 1, + "name" : "Perl Weekly Challenge - 019" + } + ], + "chart" : { + "type" : "column" + }, + "tooltip" : { + "followPointer" : 1, + "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/>" } } diff --git a/stats/pwc-language-breakdown-summary.json b/stats/pwc-language-breakdown-summary.json index 9d48cf8cef..a68439ff09 100644 --- a/stats/pwc-language-breakdown-summary.json +++ b/stats/pwc-language-breakdown-summary.json @@ -1,25 +1,31 @@ { - "tooltip" : { - "pointFormat" : "<b>{point.y:.0f}</b>" + "yAxis" : { + "min" : 0, + "title" : { + "text" : null + } }, - "subtitle" : { - "text" : "Last updated at 2019-07-30 18:20:26 GMT" + "title" : { + "text" : "Perl Weekly Challenge Contributions - 2019" + }, + "chart" : { + "type" : "column" }, "series" : [ { - "name" : "Contributions", "dataLabels" : { - "color" : "#FFFFFF", - "rotation" : -90, - "enabled" : "true", "style" : { "fontSize" : "13px", "fontFamily" : "Verdana, sans-serif" }, "format" : "{point.y:.0f}", + "color" : "#FFFFFF", "align" : "right", - "y" : 10 + "rotation" : -90, + "y" : 10, + "enabled" : "true" }, + "name" : "Contributions", "data" : [ [ "Blog", @@ -27,7 +33,7 @@ ], [ "Perl 5", - 770 + 772 ], [ "Perl 6", @@ -36,28 +42,22 @@ ] } ], + "tooltip" : { + "pointFormat" : "<b>{point.y:.0f}</b>" + }, + "subtitle" : { + "text" : "Last updated at 2019-07-30 18:30:29 GMT" + }, "legend" : { "enabled" : "false" }, "xAxis" : { + "type" : "category", "labels" : { "style" : { - "fontSize" : "13px", - "fontFamily" : "Verdana, sans-serif" + "fontFamily" : "Verdana, sans-serif", + "fontSize" : "13px" } - }, - "type" : "category" - }, - "yAxis" : { - "min" : 0, - "title" : { - "text" : null } - }, - "chart" : { - "type" : "column" - }, - "title" : { - "text" : "Perl Weekly Challenge Contributions - 2019" } } diff --git a/stats/pwc-language-breakdown.json b/stats/pwc-language-breakdown.json index 5a9d13b2d6..b9b4577569 100644 --- a/stats/pwc-language-breakdown.json +++ b/stats/pwc-language-breakdown.json @@ -1,91 +1,76 @@ { - "title" : { - "text" : "Perl Weekly Challenge Language" - }, - "chart" : { - "type" : "column" - }, "yAxis" : { "title" : { "text" : "Total Solutions" } }, - "plotOptions" : { - "series" : { - "borderWidth" : 0, - "dataLabels" : { - "enabled" : 1, - "format" : "{point.y}" - } - } - }, - "xAxis" : { - "type" : "category" + "title" : { + "text" : "Perl Weekly Challenge Language" }, - "legend" : { - "enabled" : "false" + "chart" : { + "type" : "column" }, "series" : [ { "data" : [ { + "name" : "#001", "drilldown" : "001", - "y" : 123, - "name" : "#001" + "y" : 123 }, { - "name" : "#002", + "y" : 104, "drilldown" : "002", - "y" : 104 + "name" : "#002" }, { - "name" : "#003", "drilldown" : "003", + "name" : "#003", "y" : 66 }, { - "y" : 84, "drilldown" : "004", - "name" : "#004" + "name" : "#004", + "y" : 84 }, { - "name" : "#005", "y" : 66, + "name" : "#005", "drilldown" : "005" }, { - "name" : "#006", "drilldown" : "006", + "name" : "#006", "y" : 47 }, { + "drilldown" : "007", "name" : "#007", - "y" : 54, - "drilldown" : "007" + "y" : 54 }, { + "name" : "#008", "drilldown" : "008", - "y" : 67, - "name" : "#008" + "y" : 67 }, { "y" : 65, - "drilldown" : "009", - "name" : "#009" + "name" : "#009", + "drilldown" : "009" }, { - "y" : 58, "drilldown" : "010", - "name" : "#010" + "name" : "#010", + "y" : 58 }, { - "y" : 77, "drilldown" : "011", - "name" : "#011" + "name" : "#011", + "y" : 77 }, { - "name" : "#012", "drilldown" : "012", + "name" : "#012", "y" : 81 }, { @@ -94,33 +79,33 @@ "name" : "#013" }, { - "drilldown" : "014", "y" : 94, + "drilldown" : "014", "name" : "#014" }, { + "name" : "#015", "drilldown" : "015", - "y" : 90, - "name" : "#015" + "y" : 90 }, { - "drilldown" : "016", "y" : 64, + "drilldown" : "016", "name" : "#016" }, { - "name" : "#017", + "y" : 77, "drilldown" : "017", - "y" : 77 + "name" : "#017" }, { - "y" : 70, + "name" : "#018", "drilldown" : "018", - "name" : "#018" + "y" : 70 }, { + "y" : 31, "drilldown" : "019", - "y" : 29, "name" : "#019" } ], @@ -129,12 +114,21 @@ } ], "subtitle" : { - "text" : "Click the columns to drilldown the language breakdown. Last updated at 2019-07-30 18:20:26 GMT" + "text" : "Click the columns to drilldown the language breakdown. Last updated at 2019-07-30 18:30:29 GMT" }, "tooltip" : { - "pointFormat" : "<span style=\"color:{point.color}\">Challenge {point.name}</span>: <b>{point.y:f}</b><br/>", "headerFormat" : "<span style=\"font-size:11px\"></span>", - "followPointer" : "true" + "followPointer" : "true", + "pointFormat" : "<span style=\"color:{point.color}\">Challenge {point.name}</span>: <b>{point.y:f}</b><br/>" + }, + "plotOptions" : { + "series" : { + "dataLabels" : { + "format" : "{point.y}", + "enabled" : 1 + }, + "borderWidth" : 0 + } }, "drilldown" : { "series" : [ @@ -157,8 +151,6 @@ "id" : "001" }, { - "name" : "002", - "id" : "002", "data" : [ [ "Perl 5", @@ -172,11 +164,11 @@ "Blog", 9 ] - ] + ], + "name" : "002", + "id" : "002" }, { - "name" : "003", - "id" : "003", "data" : [ [ "Perl 5", @@ -190,11 +182,13 @@ "Blog", 8 ] - ] + ], + "name" : "003", + "id" : "003" }, { - "name" : "004", "id" : "004", + "name" : "004", "data" : [ [ "Perl 5", @@ -211,7 +205,6 @@ ] }, { - "id" : "005", "name" : "005", "data" : [ [ @@ -226,11 +219,11 @@ "Blog", 11 ] - ] + ], + "id" : "005" }, { "name" : "006", - "id" : "006", "data" : [ [ "Perl 5", @@ -244,9 +237,11 @@ "Blog", 6 ] - ] + ], + "id" : "006" }, { + "id" : "007", "data" : [ [ "Perl 5", @@ -261,10 +256,10 @@ 8 ] ], - "id" : "007", "name" : "007" }, { + "name" : "008", "data" : [ [ "Perl 5", @@ -279,10 +274,10 @@ 9 ] ], - "name" : "008", "id" : "008" }, { + "id" : "009", "data" : [ [ "Perl 5", @@ -297,12 +292,11 @@ 11 ] ], - "id" : "009", "name" : "009" }, { - "name" : "010", "id" : "010", + "name" : "010", "data" : [ [ "Perl 5", @@ -319,6 +313,7 @@ ] }, { + "name" : "011", "data" : [ [ "Perl 5", @@ -333,12 +328,10 @@ 8 ] ], - "name" : "011", "id" : "011" }, { "id" : "012", - "name" : "012", "data" : [ [ "Perl 5", @@ -352,9 +345,12 @@ "Blog", 9 ] - ] + ], + "name" : "012" }, { + "id" : "013", + "name" : "013", "data" : [ [ "Perl 5", @@ -368,13 +364,10 @@ "Blog", 11 ] - ], - "name" : "013", - "id" : "013" + ] }, { "name" : "014", - "id" : "014", "data" : [ [ "Perl 5", @@ -388,9 +381,11 @@ "Blog", 13 ] - ] + ], + "id" : "014" }, { + "id" : "015", "data" : [ [ "Perl 5", @@ -405,10 +400,11 @@ 12 ] ], - "name" : "015", - "id" : "015" + "name" : "015" }, { + "id" : "016", + "name" : "016", "data" : [ [ "Perl 5", @@ -422,11 +418,10 @@ "Blog", 10 ] - ], - "name" : "016", - "id" : "016" + ] }, { + "name" : "017", "data" : [ [ "Perl 5", @@ -441,10 +436,10 @@ 10 ] ], - "name" : "017", "id" : "017" }, { + "id" : "018", "data" : [ [ "Perl 5", @@ -459,16 +454,13 @@ 10 ] ], - "name" : "018", - "id" : "018" + "name" : "018" }, { - "name" : "019", - "id" : "019", "data" : [ [ "Perl 5", - 21 + 23 ], [ "Perl 6", @@ -478,8 +470,16 @@ "Blog", 2 ] - ] + ], + "name" : "019", + "id" : "019" } ] + }, + "legend" : { + "enabled" : "false" + }, + "xAxis" : { + "type" : "category" } } diff --git a/stats/pwc-leaders.json b/stats/pwc-leaders.json index 45d6fa760a..d9dba0c56b 100644 --- a/stats/pwc-leaders.json +++ b/stats/pwc-leaders.json @@ -1,62 +1,68 @@ { - "xAxis" : { - "type" : "category" + "legend" : { + "enabled" : "false" + }, + "chart" : { + "type" : "column" }, "tooltip" : { + "pointFormat" : "<span style=\"color:{point.color}\">{point.name}</span>: <b>{point.y:f}</b><br/>", "headerFormat" : "<span style=\"font-size:11px\"></span>", - "followPointer" : "true", - "pointFormat" : "<span style=\"color:{point.color}\">{point.name}</span>: <b>{point.y:f}</b><br/>" - }, - "title" : { - "text" : "Perl Weekly Challenge Leaders (TOP 50)" - }, - "subtitle" : { - "text" : "Click the columns to drilldown the score breakdown. Last updated at 2019-07-30 18:20:24 GMT" + "followPointer" : "true" }, - "chart" : { - "type" : "column" + "xAxis" : { + "type" : "category" }, "plotOptions" : { "series" : { + "borderWidth" : 0, "dataLabels" : { "enabled" : 1, "format" : "{point.y}" - }, - "borderWidth" : 0 + } } }, + "yAxis" : { + "title" : { + "text" : "Total Score" + } + }, + "subtitle" : { + "text" : "Click the columns to drilldown the score breakdown. Last updated at 2019-07-30 18:30:26 GMT" + }, "series" : [ { "colorByPoint" : "true", + "name" : "Perl Weekly Challenge Leaders", "data" : [ { + "name" : "#1: Laurent Rosenfeld", "y" : 198, - "drilldown" : "Laurent Rosenfeld", - "name" : "#1: Laurent Rosenfeld" + "drilldown" : "Laurent Rosenfeld" }, { - "y" : 192, + "drilldown" : "Joelle Maslak", "name" : "#2: Joelle Maslak", - "drilldown" : "Joelle Maslak" + "y" : 192 }, { - "y" : 146, "drilldown" : "Jaldhar H. Vyas", + "y" : 146, "name" : "#3: Jaldhar H. Vyas" }, { "y" : 132, - "drilldown" : "Ruben Westerberg", - "name" : "#4: Ruben Westerberg" + "name" : "#4: Ruben Westerberg", + "drilldown" : "Ruben Westerberg" }, { - "y" : 114, + "drilldown" : "Athanasius", "name" : "#5: Athanasius", - "drilldown" : "Athanasius" + "y" : 114 }, { - "y" : 110, "drilldown" : "Adam Russell", + "y" : 110, "name" : "#6: Adam Russell" }, { @@ -65,29 +71,29 @@ "drilldown" : "Arne Sommer" }, { - "drilldown" : "E. Choroba", + "y" : 90, "name" : "#8: E. Choroba", - "y" : 90 + "drilldown" : "E. Choroba" }, { - "drilldown" : "Simon Proctor", + "y" : 84, "name" : "#9: Simon Proctor", - "y" : 84 + "drilldown" : "Simon Proctor" }, { + "name" : "#10: Francis Whittle", "y" : 82, - "drilldo |
