diff options
| author | Mohammad S Anwar <mohammad.anwar@yahoo.com> | 2020-05-14 08:11:13 +0100 |
|---|---|---|
| committer | Mohammad S Anwar <mohammad.anwar@yahoo.com> | 2020-05-14 08:11:13 +0100 |
| commit | c15d238872189b8a322196e8c57229617319a86e (patch) | |
| tree | 76a26fbd57941e1c44895d2cc0a978f17ffa718c | |
| parent | 3c26d158695cfdebae9a7bf26128dbdbe743d3ca (diff) | |
| download | perlweeklychallenge-club-c15d238872189b8a322196e8c57229617319a86e.tar.gz perlweeklychallenge-club-c15d238872189b8a322196e8c57229617319a86e.tar.bz2 perlweeklychallenge-club-c15d238872189b8a322196e8c57229617319a86e.zip | |
- Added solutions by Arne Sommer.
| -rw-r--r-- | challenge-060/arne-sommer/blog.txt | 1 | ||||
| -rwxr-xr-x | challenge-060/arne-sommer/raku/ch-1.p6 | 40 | ||||
| -rwxr-xr-x | challenge-060/arne-sommer/raku/ch-2.p6 | 13 | ||||
| -rwxr-xr-x | challenge-060/arne-sommer/raku/excel | 40 | ||||
| -rwxr-xr-x | challenge-060/arne-sommer/raku/find-numbers | 13 | ||||
| -rwxr-xr-x | challenge-060/arne-sommer/raku/find-numbers-fixed | 13 | ||||
| -rw-r--r-- | stats/pwc-current.json | 269 | ||||
| -rw-r--r-- | stats/pwc-language-breakdown-summary.json | 42 | ||||
| -rw-r--r-- | stats/pwc-language-breakdown.json | 480 | ||||
| -rw-r--r-- | stats/pwc-leaders.json | 362 | ||||
| -rw-r--r-- | stats/pwc-summary-1-30.json | 48 | ||||
| -rw-r--r-- | stats/pwc-summary-121-150.json | 98 | ||||
| -rw-r--r-- | stats/pwc-summary-151-180.json | 72 | ||||
| -rw-r--r-- | stats/pwc-summary-31-60.json | 52 | ||||
| -rw-r--r-- | stats/pwc-summary-61-90.json | 42 | ||||
| -rw-r--r-- | stats/pwc-summary-91-120.json | 32 | ||||
| -rw-r--r-- | stats/pwc-summary.json | 50 |
17 files changed, 903 insertions, 764 deletions
diff --git a/challenge-060/arne-sommer/blog.txt b/challenge-060/arne-sommer/blog.txt new file mode 100644 index 0000000000..229576d030 --- /dev/null +++ b/challenge-060/arne-sommer/blog.txt @@ -0,0 +1 @@ +https://raku-musings.com/excelled-find.html diff --git a/challenge-060/arne-sommer/raku/ch-1.p6 b/challenge-060/arne-sommer/raku/ch-1.p6 new file mode 100755 index 0000000000..12da264b42 --- /dev/null +++ b/challenge-060/arne-sommer/raku/ch-1.p6 @@ -0,0 +1,40 @@ +#! /usr/bin/env raku + +multi MAIN (Int $int) +{ + say to-excel($int); +} + +multi MAIN (Str $str where $str ~~ /^<[A..Z]>+$/) +{ + say from-excel($str); +} + +constant A := ord('A'); + +sub to-excel (Int $number is copy) +{ + $number--; + + my $div = $number mod 26; + my $exp = $number div 26; + + # return to-excel($exp) ~ ('A' .. 'Z')[$div] if $exp; + return to-excel($exp) ~ chr(A + $div) if $exp; + + # return ('A' .. 'Z')[$div]; + return chr(A + $div); +} + +sub from-excel ($str) +{ + my @elems = $str.comb; + + my $sum = 0; + + for @elems + { + $sum = $sum * 26 + ord($_) - A + 1; + } + return $sum; +} diff --git a/challenge-060/arne-sommer/raku/ch-2.p6 b/challenge-060/arne-sommer/raku/ch-2.p6 new file mode 100755 index 0000000000..4acea6dffa --- /dev/null +++ b/challenge-060/arne-sommer/raku/ch-2.p6 @@ -0,0 +1,13 @@ +#! /usr/bin/env raku + +subset PositiveIntZero of Int where * >= 0; +subset PositiveInt of Int where * > 0; + +unit sub MAIN (PositiveInt $X, PositiveInt $Y, *@L where @L.elems > 1 && all(@L) ~~ PositiveIntZero); + +(@L xx $X).flat.combinations(1..$X)>>.join>>.Int.unique.sort.grep({ .chars == $X && $_ < $Y }).join(", ").say + + + + + diff --git a/challenge-060/arne-sommer/raku/excel b/challenge-060/arne-sommer/raku/excel new file mode 100755 index 0000000000..12da264b42 --- /dev/null +++ b/challenge-060/arne-sommer/raku/excel @@ -0,0 +1,40 @@ +#! /usr/bin/env raku + +multi MAIN (Int $int) +{ + say to-excel($int); +} + +multi MAIN (Str $str where $str ~~ /^<[A..Z]>+$/) +{ + say from-excel($str); +} + +constant A := ord('A'); + +sub to-excel (Int $number is copy) +{ + $number--; + + my $div = $number mod 26; + my $exp = $number div 26; + + # return to-excel($exp) ~ ('A' .. 'Z')[$div] if $exp; + return to-excel($exp) ~ chr(A + $div) if $exp; + + # return ('A' .. 'Z')[$div]; + return chr(A + $div); +} + +sub from-excel ($str) +{ + my @elems = $str.comb; + + my $sum = 0; + + for @elems + { + $sum = $sum * 26 + ord($_) - A + 1; + } + return $sum; +} diff --git a/challenge-060/arne-sommer/raku/find-numbers b/challenge-060/arne-sommer/raku/find-numbers new file mode 100755 index 0000000000..89146df712 --- /dev/null +++ b/challenge-060/arne-sommer/raku/find-numbers @@ -0,0 +1,13 @@ +#! /usr/bin/env raku + +subset PositiveIntZero of Int where * >= 0; +subset PositiveInt of Int where * > 0; + +unit sub MAIN (PositiveInt $X, PositiveInt $Y, *@L where @L.elems > 1 && all(@L) ~~ PositiveIntZero); + +(@L xx $X).flat.combinations($X)>>.join>>.Int.unique.sort.grep({ .chars == $X && $_ < $Y }).join(", ").say + + + + + diff --git a/challenge-060/arne-sommer/raku/find-numbers-fixed b/challenge-060/arne-sommer/raku/find-numbers-fixed new file mode 100755 index 0000000000..4acea6dffa --- /dev/null +++ b/challenge-060/arne-sommer/raku/find-numbers-fixed @@ -0,0 +1,13 @@ +#! /usr/bin/env raku + +subset PositiveIntZero of Int where * >= 0; +subset PositiveInt of Int where * > 0; + +unit sub MAIN (PositiveInt $X, PositiveInt $Y, *@L where @L.elems > 1 && all(@L) ~~ PositiveIntZero); + +(@L xx $X).flat.combinations(1..$X)>>.join>>.Int.unique.sort.grep({ .chars == $X && $_ < $Y }).join(", ").say + + + + + diff --git a/stats/pwc-current.json b/stats/pwc-current.json index 4e391fc0e4..6b54ca7213 100644 --- a/stats/pwc-current.json +++ b/stats/pwc-current.json @@ -1,130 +1,45 @@ { - "xAxis" : { - "type" : "category" - }, - "title" : { - "text" : "Perl Weekly Challenge - 060" - }, - "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 + "legend" : { + "enabled" : 0 }, "chart" : { "type" : "column" }, - "subtitle" : { - "text" : "[Champions: 14] Last updated at 2020-05-13 20:06:47 GMT" + "title" : { + "text" : "Perl Weekly Challenge - 060" }, "yAxis" : { "title" : { "text" : "Total Solutions" } }, - "series" : [ - { - "name" : "Perl Weekly Challenge - 060", - "data" : [ - { - "y" : 2, - "drilldown" : "Dave Jacoby", - "name" : "Dave Jacoby" - }, - { - "name" : "E. Choroba", - "y" : 3, - "drilldown" : "E. Choroba" - }, - { - "name" : "Javier Luque", - "y" : 5, - "drilldown" : "Javier Luque" - }, - { - "name" : "Jorg Sommrey", - "drilldown" : "Jorg Sommrey", - "y" : 2 - }, - { - "drilldown" : "Luca Ferrari", - "y" : 4, - "name" : "Luca Ferrari" - }, - { - "y" : 2, - "drilldown" : "Mark Anderson", - "name" : "Mark Anderson" - }, - { - "name" : "Markus Holzer", - "y" : 2, - "drilldown" : "Markus Holzer" - }, - { - "name" : "Mohammad S Anwar", - "drilldown" : "Mohammad S Anwar", - "y" : 2 - }, - { - "drilldown" : "Roger Bell_West", - "y" : 4, - "name" : "Roger Bell_West" - }, - { - "y" : 2, - "drilldown" : "Saif Ahmed", - "name" : "Saif Ahmed" - }, - { - "name" : "Sangeet Kar", - "y" : 2, - "drilldown" : "Sangeet Kar" - }, - { - "name" : "Ulrich Rieke", - "y" : 2, - "drilldown" : "Ulrich Rieke" - }, - { - "y" : 2, - "drilldown" : "Wanderdoc", - "name" : "Wanderdoc" - }, - { - "name" : "Yet Ebreo", - "y" : 2, - "drilldown" : "Yet Ebreo" - } - ], - "colorByPoint" : 1 - } - ], - "plotOptions" : { - "series" : { - "borderWidth" : 0, - "dataLabels" : { - "format" : "{point.y}", - "enabled" : 1 - } - } - }, - "legend" : { - "enabled" : 0 - }, "drilldown" : { "series" : [ { - "id" : "Dave Jacoby", + "id" : "Arne Sommer", + "name" : "Arne Sommer", + "data" : [ + [ + "Raku", + 2 + ], + [ + "Blog", + 1 + ] + ] + }, + { "data" : [ [ "Perl", 2 ] ], - "name" : "Dave Jacoby" + "name" : "Dave Jacoby", + "id" : "Dave Jacoby" }, { - "id" : "E. Choroba", "data" : [ [ "Perl", @@ -135,9 +50,12 @@ 1 ] ], + "id" : "E. Choroba", "name" : "E. Choroba" }, { + "name" : "Javier Luque", + "id" : "Javier Luque", "data" : [ [ "Perl", @@ -151,9 +69,7 @@ "Blog", 1 ] - ], - "id" : "Javier Luque", - "name" : "Javier Luque" + ] }, { "name" : "Jorg Sommrey", @@ -176,40 +92,41 @@ 2 ] ], - "id" : "Luca Ferrari", - "name" : "Luca Ferrari" + "name" : "Luca Ferrari", + "id" : "Luca Ferrari" }, { - "id" : "Mark Anderson", "data" : [ [ "Raku", 2 ] ], - "name" : "Mark Anderson" + "name" : "Mark Anderson", + "id" : "Mark Anderson" }, { + "id" : "Markus Holzer", "name" : "Markus Holzer", "data" : [ [ "Raku", 2 ] - ], - "id" : "Markus Holzer" + ] }, { - "name" : "Mohammad S Anwar", "data" : [ [ "Perl", 2 ] ], - "id" : "Mohammad S Anwar" + "id" : "Mohammad S Anwar", + "name" : "Mohammad S Anwar" }, { + "id" : "Roger Bell_West", "name" : "Roger Bell_West", "data" : [ [ @@ -220,8 +137,7 @@ "Raku", 2 ] - ], - "id" : "Roger Bell_West" + ] }, { "data" : [ @@ -230,8 +146,8 @@ 2 ] ], - "id" : "Saif Ahmed", - "name" : "Saif Ahmed" + "name" : "Saif Ahmed", + "id" : "Saif Ahmed" }, { "data" : [ @@ -254,25 +170,128 @@ "name" : "Ulrich Rieke" }, { + "name" : "Wanderdoc", "id" : "Wanderdoc", "data" : [ [ "Perl", 2 ] - ], - "name" : "Wanderdoc" + ] }, { - "name" : "Yet Ebreo", - "id" : "Yet Ebreo", "data" : [ [ "Perl", 2 ] - ] + ], + "name" : "Yet Ebreo", + "id" : "Yet Ebreo" } ] + }, + "plotOptions" : { + "series" : { + "borderWidth" : 0, + "dataLabels" : { + "enabled" : 1, + "format" : "{point.y}" + } + } + }, + "xAxis" : { + "type" : "category" + }, + "subtitle" : { + "text" : "[Champions: 15] Last updated at 2020-05-14 07:11:03 GMT" + }, + "series" : [ + { + "name" : "Perl Weekly Challenge - 060", + "data" : [ + { + "drilldown" : "Arne Sommer", + "name" : "Arne Sommer", + "y" : 3 + }, + { + "y" : 2, + "drilldown" : "Dave Jacoby", + "name" : "Dave Jacoby" + }, + { + "name" : "E. Choroba", + "drilldown" : "E. Choroba", + "y" : 3 + }, + { + "name" : "Javier Luque", + "drilldown" : "Javier Luque", + "y" : 5 + }, + { + "y" : 2, + "drilldown" : "Jorg Sommrey", + "name" : "Jorg Sommrey" + }, + { + "y" : 4, + "name" : "Luca Ferrari", + "drilldown" : "Luca Ferrari" + }, + { + "drilldown" : "Mark Anderson", + "name" : "Mark Anderson", + "y" : 2 + }, + { + "y" : 2, + "drilldown" : "Markus Holzer", + "name" : "Markus Holzer" + }, + { + "y" : 2, + "name" : "Mohammad S Anwar", + "drilldown" : "Mohammad S Anwar" + }, + { + "y" : 4, + "drilldown" : "Roger Bell_West", + "name" : "Roger Bell_West" + }, + { + "y" : 2, + "drilldown" : "Saif Ahmed", + "name" : "Saif Ahmed" + }, + { + "name" : "Sangeet Kar", + "drilldown" : "Sangeet Kar", + "y" : 2 + }, + { + "y" : 2, + "name" : "Ulrich Rieke", + "drilldown" : "Ulrich Rieke" + }, + { + "y" : 2, + "name" : "Wanderdoc", + "drilldown" : "Wanderdoc" + }, + { + "y" : 2, + "name" : "Yet Ebreo", + "drilldown" : "Yet Ebreo" + } + ], + "colorByPoint" : 1 + } + ], + "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/>" } } diff --git a/stats/pwc-language-breakdown-summary.json b/stats/pwc-language-breakdown-summary.json index 3502153999..558bb84a4c 100644 --- a/stats/pwc-language-breakdown-summary.json +++ b/stats/pwc-language-breakdown-summary.json @@ -1,32 +1,37 @@ { + "title" : { + "text" : "Perl Weekly Challenge Contributions [2019 - 2020]" + }, + "legend" : { + "enabled" : "false" + }, + "chart" : { + "type" : "column" + }, "yAxis" : { "min" : 0, "title" : { "text" : null } }, - "subtitle" : { - "text" : "Last updated at 2020-05-13 20:06:47 GMT" - }, "series" : [ { - "name" : "Contributions", "dataLabels" : { - "format" : "{point.y:.0f}", - "enabled" : "true", - "rotation" : -90, "style" : { - "fontSize" : "13px", - "fontFamily" : "Verdana, sans-serif" + "fontFamily" : "Verdana, sans-serif", + "fontSize" : "13px" }, - "color" : "#FFFFFF", + "enabled" : "true", "y" : 10, + "format" : "{point.y:.0f}", + "rotation" : -90, + "color" : "#FFFFFF", "align" : "right" }, "data" : [ [ "Blog", - 681 + 682 ], [ "Perl", @@ -34,13 +39,14 @@ ], [ "Raku", - 1582 + 1584 ] - ] + ], + "name" : "Contributions" } ], - "legend" : { - "enabled" : "false" + "subtitle" : { + "text" : "Last updated at 2020-05-14 07:11:03 GMT" }, "xAxis" : { "type" : "category", @@ -51,13 +57,7 @@ } } }, - "title" : { - "text" : "Perl Weekly Challenge Contributions [2019 - 2020]" - }, "tooltip" : { "pointFormat" : "<b>{point.y:.0f}</b>" - }, - "chart" : { - "type" : "column" } } diff --git a/stats/pwc-language-breakdown.json b/stats/pwc-language-breakdown.json index 309b78b7f7..1df53468fc 100644 --- a/stats/pwc-language-breakdown.json +++ b/stats/pwc-language-breakdown.json @@ -1,29 +1,17 @@ { - "xAxis" : { - "type" : "category" - }, - "title" : { - "text" : "Perl Weekly Challenge Language" + "legend" : { + "enabled" : "false" }, "chart" : { "type" : "column" }, - "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" - }, - "subtitle" : { - "text" : "Click the columns to drilldown the language breakdown. Last updated at 2020-05-13 20:06:47 GMT" - }, - "yAxis" : { - "title" : { - "text" : "Total Solutions" - } + "title" : { + "text" : "Perl Weekly Challenge Language" }, "drilldown" : { "series" : [ { + "id" : "001", "name" : "001", "data" : [ [ @@ -38,11 +26,9 @@ "Blog", 11 ] - ], - "id" : "001" + ] }, { - "id" : "002", "data" : [ [ "Perl", @@ -57,11 +43,10 @@ 10 ] ], + "id" : "002", "name" : "002" }, { - "name" : "003", - "id" : "003", "data" : [ [ "Perl", @@ -75,7 +60,9 @@ "Blog", 9 ] - ] + ], + "id" : "003", + "name" : "003" }, { "name" : "004", @@ -96,6 +83,8 @@ ] }, { + "name" : "005", + "id" : "005", "data" : [ [ "Perl", @@ -109,11 +98,11 @@ "Blog", 12 ] - ], - "id" : "005", - "name" : "005" + ] }, { + "name" : "006", + "id" : "006", "data" : [ [ "Perl", @@ -127,12 +116,11 @@ "Blog", 7 ] - ], - "id" : "006", - "name" : "006" + ] }, { "name" : "007", + "id" : "007", "data" : [ [ "Perl", @@ -146,10 +134,10 @@ "Blog", 10 ] - ], - "id" : "007" + ] }, { + "name" : "008", "id" : "008", "data" : [ [ @@ -164,11 +152,9 @@ "Blog", 12 ] - ], - "name" : "008" + ] }, { - "name" : "009", "data" : [ [ "Perl", @@ -183,10 +169,10 @@ 13 ] ], + "name" : "009", "id" : "009" }, { - "id" : "010", "data" : [ [ "Perl", @@ -201,11 +187,10 @@ 11 ] ], + "id" : "010", "name" : "010" }, { - "name" : "011", - "id" : "011", "data" : [ [ "Perl", @@ -219,9 +204,13 @@ "Blog", 10 ] - ] + ], + "name" : "011", + "id" : "011" }, { + "name" : "012", + "id" : "012", "data" : [ [ "Perl", @@ -235,9 +224,7 @@ "Blog", 11 ] - ], - "id" : "012", - "name" : "012" + ] }, { "name" : "013", @@ -258,8 +245,8 @@ ] }, { - "name" : "014", "id" : "014", + "name" : "014", "data" : [ [ "Perl", @@ -276,8 +263,6 @@ ] }, { - "name" : "015", - "id" : "015", "data" : [ [ "Perl", @@ -291,11 +276,13 @@ "Blog", 15 ] - ] + ], + "id" : "015", + "name" : "015" }, { - "name" : "016", "id" : "016", + "name" : "016", "data" : [ [ "Perl", @@ -313,6 +300,7 @@ }, { "name" : "017", + "id" : "017", "data" : [ [ "Perl", @@ -326,12 +314,11 @@ "Blog", 12 ] - ], - "id" : "017" + ] }, { - "name" : "018", "id" : "018", + "name" : "018", "data" : [ [ "Perl", @@ -348,6 +335,8 @@ ] }, { + "name" : "019", + "id" : "019", "data" : [ [ "Perl", @@ -361,12 +350,11 @@ "Blog", 13 ] - ], - "id" : "019", - "name" : "019" + ] }, { "id" : "020", + "name" : "020", "data" : [ [ "Perl", @@ -380,11 +368,11 @@ "Blog", 13 ] - ], - "name" : "020" + ] }, { "name" : "021", + "id" : "021", "data" : [ [ "Perl", @@ -398,10 +386,10 @@ "Blog", 10 ] - ], - "id" : "021" + ] }, { + "name" : "022", "id" : "022", "data" : [ [ @@ -416,12 +404,9 @@ "Blog", 10 ] - ], - "name" : "022" + ] }, { - "name" : "023", - "id" : "023", "data" : [ [ "Perl", @@ -435,10 +420,13 @@ "Blog", 12 ] - ] + ], + "name" : "023", + "id" : "023" }, { "name" : "024", + "id" : "024", "data" : [ [ "Perl", @@ -452,12 +440,9 @@ "Blog", 11 ] - ], - "id" : "024" + ] }, { - "name" : "025", - "id" : "025", "data" : [ [ "Perl", @@ -471,11 +456,13 @@ "Blog", 12 ] - ] + ], + "name" : "025", + "id" : "025" }, { - "name" : "026", "id" : "026", + "name" : "026", "data" : [ [ "Perl", @@ -492,7 +479,6 @@ ] }, { - "name" : "027", "data" : [ [ "Perl", @@ -507,10 +493,10 @@ 9 ] ], - "id" : "027" + "id" : "027", + "name" : "027" }, { - "name" : "028", "data" : [ [ "Perl", @@ -525,9 +511,11 @@ 9 ] ], + "name" : "028", "id" : "028" }, { + "id" : "029", "name" : "029", "data" : [ [ @@ -542,12 +530,9 @@ "Blog", 12 ] - ], - "id" : "029" + ] }, { - "name" : "030", - "id" : "030", "data" : [ [ "Perl", @@ -561,10 +546,11 @@ "Blog", 10 ] - ] + ], + "name" : "030", + "id" : "030" }, { - "name" : "031", "data" : [ [ "Perl", @@ -579,6 +565,7 @@ 9 ] ], + "name" : "031", "id" : "031" }, { @@ -600,8 +587,6 @@ ] }, { - "name" : "033", - "id" : "033", "data" : [ [ "Perl", @@ -615,10 +600,11 @@ "Blog", 10 ] - ] + ], + "name" : "033", + "id" : "033" }, { - "id" : "034", "data" : [ [ "Perl", @@ -633,6 +619,7 @@ 11 ] ], + "id" : "034", "name" : "034" }, { @@ -654,7 +641,6 @@ "name" : "035" }, { - "id" : "036", "data" : [ [ "Perl", @@ -669,10 +655,10 @@ 11 ] ], + "id" : "036", "name" : "036" }, { |
