diff options
| author | Mohammad S Anwar <mohammad.anwar@yahoo.com> | 2020-09-29 20:04:25 +0100 |
|---|---|---|
| committer | Mohammad S Anwar <mohammad.anwar@yahoo.com> | 2020-09-29 20:04:25 +0100 |
| commit | 63baf5c0693405f5e3bc3d87a0f523ee712b964c (patch) | |
| tree | d2a32fe8e08522dd460d3a0fcb857d7ed0fdd0cb | |
| parent | 0f50bf1e03970b42514876ebb74e1673a2e9a44b (diff) | |
| download | perlweeklychallenge-club-63baf5c0693405f5e3bc3d87a0f523ee712b964c.tar.gz perlweeklychallenge-club-63baf5c0693405f5e3bc3d87a0f523ee712b964c.tar.bz2 perlweeklychallenge-club-63baf5c0693405f5e3bc3d87a0f523ee712b964c.zip | |
- Added Raku solution to the "Count Candies" task.
| -rw-r--r-- | challenge-080/mohammad-anwar/raku/ch-1.raku | 8 | ||||
| -rw-r--r-- | challenge-080/mohammad-anwar/raku/ch-1.t | 4 | ||||
| -rw-r--r-- | challenge-080/mohammad-anwar/raku/ch-2.raku | 51 | ||||
| -rw-r--r-- | challenge-080/mohammad-anwar/raku/ch-2.t | 53 | ||||
| -rw-r--r-- | stats/pwc-current.json | 232 | ||||
| -rw-r--r-- | stats/pwc-language-breakdown-summary.json | 66 | ||||
| -rw-r--r-- | stats/pwc-language-breakdown.json | 548 | ||||
| -rw-r--r-- | stats/pwc-leaders.json | 314 | ||||
| -rw-r--r-- | stats/pwc-summary-1-30.json | 48 | ||||
| -rw-r--r-- | stats/pwc-summary-121-150.json | 118 | ||||
| -rw-r--r-- | stats/pwc-summary-151-180.json | 98 | ||||
| -rw-r--r-- | stats/pwc-summary-181-210.json | 34 | ||||
| -rw-r--r-- | stats/pwc-summary-31-60.json | 60 | ||||
| -rw-r--r-- | stats/pwc-summary-61-90.json | 36 | ||||
| -rw-r--r-- | stats/pwc-summary-91-120.json | 104 | ||||
| -rw-r--r-- | stats/pwc-summary.json | 432 |
16 files changed, 1157 insertions, 1049 deletions
diff --git a/challenge-080/mohammad-anwar/raku/ch-1.raku b/challenge-080/mohammad-anwar/raku/ch-1.raku index f7c1d02b5a..9eb70e9009 100644 --- a/challenge-080/mohammad-anwar/raku/ch-1.raku +++ b/challenge-080/mohammad-anwar/raku/ch-1.raku @@ -14,12 +14,16 @@ sub MAIN(:@N where .all ~~ Int = (2, 3, 7, 6, 8, -1, -10, 15)) { say smallest-positive-number(@N); } -sub smallest-positive-number(@n where .all ~~ Int) { +# +# +# SUBROUTINE + +sub smallest-positive-number(@n where .all ~~ Int --> Int) { my @positive-numbers = @n.sort.grep: { $_ > 0 }; return 1 unless @positive-numbers.elems; - my $i = 0; + my Int $i = 0; (1 .. @positive-numbers.tail).map: -> $n { return $n if $n < @positive-numbers[$i++] }; diff --git a/challenge-080/mohammad-anwar/raku/ch-1.t b/challenge-080/mohammad-anwar/raku/ch-1.t index 523fac682d..14cde7e58b 100644 --- a/challenge-080/mohammad-anwar/raku/ch-1.t +++ b/challenge-080/mohammad-anwar/raku/ch-1.t @@ -34,12 +34,12 @@ done-testing; # # SUBROUTINE -sub smallest-positive-number(@n where .all ~~ Int) { +sub smallest-positive-number(@n where .all ~~ Int --> Int) { my @positive-numbers = @n.sort.grep: { $_ > 0 }; return 1 unless @positive-numbers.elems; - my $i = 0; + my Int $i = 0; (1 .. @positive-numbers.tail).map: -> $n { return $n if $n < @positive-numbers[$i++] }; diff --git a/challenge-080/mohammad-anwar/raku/ch-2.raku b/challenge-080/mohammad-anwar/raku/ch-2.raku new file mode 100644 index 0000000000..9602f1379e --- /dev/null +++ b/challenge-080/mohammad-anwar/raku/ch-2.raku @@ -0,0 +1,51 @@ +#!/usr/bin/env raku + +# +# Perl Weekly Challenge - 080 +# +# Task #2: Count Candies +# +# https://perlweeklychallenge.org/blog/perl-weekly-challenge-080 +# + +use v6.d; + +subset PositiveInt of Int where * > 0; + +sub MAIN(*@N where @N.elems > 1 && all(@N) ~~ PositiveInt) { + say "Total candies: " ~ count-candies(@N); +} + +# +# +# SUBROUTINE + +sub count-candies(@rankings + where @rankings.elems > 1 && + all(@rankings) ~~ PositiveInt --> Int) { + + my @l2r = Empty; + my @r2l = Empty; + + @l2r.push: 1 for @rankings; + @r2l.push: 1 for @rankings; + + my Int $i = 1; + while $i < @rankings.elems { + @l2r[$i] = @l2r[$i - 1] + 1 + if @rankings[$i] > @rankings[$i - 1]; + $i++; + } + + my Int $j = @rankings.elems - 2; + while $j >= 0 { + @r2l[$j] = @r2l[$j + 1] + 1 + if @rankings[$j] > @rankings[$j + 1]; + $j--; + } + + my Int $count = 0; + $count += (@l2r[$_], @r2l[$_]).max for 0 .. @rankings.elems - 1; + + return $count; +} diff --git a/challenge-080/mohammad-anwar/raku/ch-2.t b/challenge-080/mohammad-anwar/raku/ch-2.t new file mode 100644 index 0000000000..30ca48cfe8 --- /dev/null +++ b/challenge-080/mohammad-anwar/raku/ch-2.t @@ -0,0 +1,53 @@ +#!/usr/bin/env raku + +# +# Perl Weekly Challenge - 080 +# +# Task #2: Count Candies +# +# https://perlweeklychallenge.org/blog/perl-weekly-challenge-080 +# + +use Test; + +subset PositiveInt of Int where * > 0; + +is count-candies((1, 2)), 3, "testing: (1, 2)"; +is count-candies((1, 2, 2)), 4, "testing: (1, 2, 2)"; +is count-candies((1, 5, 2, 1)), 7, "testing: (1, 5, 2, 1)"; + +done-testing; + +# +# +# SUBROUTINE + +sub count-candies(@rankings + where @rankings.elems > 1 && + all(@rankings) ~~ PositiveInt --> Int) { + + my @l2r = Empty; + my @r2l = Empty; + + @l2r.push: 1 for @rankings; + @r2l.push: 1 for @rankings; + + my Int $i = 1; + while $i < @rankings.elems { + @l2r[$i] = @l2r[$i - 1] + 1 + if @rankings[$i] > @rankings[$i - 1]; + $i++; + } + + my Int $j = @rankings.elems - 2; + while $j >= 0 { + @r2l[$j] = @r2l[$j + 1] + 1 + if @rankings[$j] > @rankings[$j + 1]; + $j--; + } + + my Int $count = 0; + $count += (@l2r[$_], @r2l[$_]).max for 0 .. @rankings.elems - 1; + + return $count; +} diff --git a/stats/pwc-current.json b/stats/pwc-current.json index f80d08588e..41e92fa8c1 100644 --- a/stats/pwc-current.json +++ b/stats/pwc-current.json @@ -1,96 +1,9 @@ { - "series" : [ - { - "name" : "Perl Weekly Challenge - 080", - "colorByPoint" : 1, - "data" : [ - { - "name" : "Andinus", - "drilldown" : "Andinus", - "y" : 4 - }, - { - "y" : 2, - "name" : "James Smith", - "drilldown" : "James Smith" - }, - { - "drilldown" : "Kang-min Liu", - "name" : "Kang-min Liu", - "y" : 4 - }, - { - "name" : "Lubos Kolouch", - "drilldown" : "Lubos Kolouch", - "y" : 2 - }, - { - "name" : "Mark Anderson", - "drilldown" : "Mark Anderson", - "y" : 2 - }, - { - "name" : "Markus Holzer", - "drilldown" : "Markus Holzer", - "y" : 2 - }, - { - "y" : 3, - "name" : "Mohammad S Anwar", - "drilldown" : "Mohammad S Anwar" - }, - { - "y" : 1, - "drilldown" : "Myoungjin Jeon", - "name" : "Myoungjin Jeon" - }, - { - "y" : 2, - "name" : "Niels van Dijke", - "drilldown" : "Niels van Dijke" - }, - { - "y" : 5, - "drilldown" : "Roger Bell_West", - "name" : "Roger Bell_West" - }, - { - "drilldown" : "Shawn Wagner", - "name" : "Shawn Wagner", - "y" : 2 - }, - { - "drilldown" : "Simon Proctor", - "name" : "Simon Proctor", - "y" : 2 - }, - { - "y" : 3, - "drilldown" : "Walt Mankowski", - "name" : "Walt Mankowski" - } - ] - } - ], - "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/>" - }, - "yAxis" : { - "title" : { - "text" : "Total Solutions" - } - }, - "legend" : { - "enabled" : 0 - }, - "subtitle" : { - "text" : "[Champions: 13] Last updated at 2020-09-29 12:17:52 GMT" - }, "drilldown" : { "series" : [ { + "name" : "Andinus", + "id" : "Andinus", "data" : [ [ "Perl", @@ -100,19 +13,17 @@ "Blog", 2 ] - ], - "id" : "Andinus", - "name" : "Andinus" + ] }, { - "id" : "James Smith", + "name" : "James Smith", "data" : [ [ "Perl", 2 ] ], - "name" : "James Smith" + "id" : "James Smith" }, { "data" : [ @@ -129,14 +40,14 @@ "name" : "Kang-min Liu" }, { - "id" : "Lubos Kolouch", + "name" : "Lubos Kolouch", "data" : [ [ "Perl", 2 ] ], - "name" : "Lubos Kolouch" + "id" : "Lubos Kolouch" }, { "name" : "Mark Anderson", @@ -159,7 +70,7 @@ "name" : "Markus Holzer" }, { - "id" : "Mohammad S Anwar", + "name" : "Mohammad S Anwar", "data" : [ [ "Perl", @@ -167,10 +78,10 @@ ], [ "Raku", - 1 + 2 ] ], - "name" : "Mohammad S Anwar" + "id" : "Mohammad S Anwar" }, { "name" : "Myoungjin Jeon", @@ -183,17 +94,17 @@ "id" : "Myoungjin Jeon" }, { + "name" : "Niels van Dijke", + "id" : "Niels van Dijke", "data" : [ [ "Perl", 2 ] - ], - "id" : "Niels van Dijke", - "name" : "Niels van Dijke" + ] }, { - "id" : "Roger Bell_West", + "name" : "Roger Bell_West", "data" : [ [ "Perl", @@ -208,7 +119,7 @@ 1 ] ], - "name" : "Roger Bell_West" + "id" : "Roger Bell_West" }, { "name" : "Shawn Wagner", @@ -221,16 +132,17 @@ ] }, { - "id" : "Simon Proctor", + "name" : "Simon Proctor", "data" : [ [ "Raku", 2 ] ], - "name" : "Simon Proctor" + "id" : "Simon Proctor" }, { + "name" : "Walt Mankowski", "id" : "Walt Mankowski", "data" : [ [ @@ -241,27 +153,115 @@ "Blog", 1 ] - ], - "name" : "Walt Mankowski" + ] } ] }, + "series" : [ + { + "data" : [ + { + "drilldown" : "Andinus", + "name" : "Andinus", + "y" : 4 + }, + { + "drilldown" : "James Smith", + "name" : "James Smith", + "y" : 2 + }, + { + "drilldown" : "Kang-min Liu", + "y" : 4, + "name" : "Kang-min Liu" + }, + { + "drilldown" : "Lubos Kolouch", + "name" : "Lubos Kolouch", + "y" : 2 + }, + { + "drilldown" : "Mark Anderson", + "name" : "Mark Anderson", + "y" : 2 + }, + { + "y" : 2, + "name" : "Markus Holzer", + "drilldown" : "Markus Holzer" + }, + { + "drilldown" : "Mohammad S Anwar", + "name" : "Mohammad S Anwar", + "y" : 4 + }, + { + "y" : 1, + "name" : "Myoungjin Jeon", + "drilldown" : "Myoungjin Jeon" + }, + { + "name" : "Niels van Dijke", + "y" : 2, + "drilldown" : "Niels van Dijke" + }, + { + "y" : 5, + "name" : "Roger Bell_West", + "drilldown" : "Roger Bell_West" + }, + { + "name" : "Shawn Wagner", + "y" : 2, + "drilldown" : "Shawn Wagner" + }, + { + "y" : 2, + "name" : "Simon Proctor", + "drilldown" : "Simon Proctor" + }, + { + "name" : "Walt Mankowski", + "y" : 3, + "drilldown" : "Walt Mankowski" + } + ], + "colorByPoint" : 1, + "name" : "Perl Weekly Challenge - 080" + } + ], + "title" : { + "text" : "Perl Weekly Challenge - 080" + }, + "xAxis" : { + "type" : "category" + }, "chart" : { "type" : "column" }, + "subtitle" : { + "text" : "[Champions: 13] Last updated at 2020-09-29 19:04:07 GMT" + }, + "legend" : { + "enabled" : 0 + }, "plotOptions" : { "series" : { + "borderWidth" : 0, "dataLabels" : { - "enabled" : 1, - "format" : "{point.y}" - }, - "borderWidth" : 0 + "format" : "{point.y}", + "enabled" : 1 + } } }, - "xAxis" : { - "type" : "category" + "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/>" }, - "title" : { - "text" : "Perl Weekly Challenge - 080" + "yAxis" : { + "title" : { + "text" : "Total Solutions" + } } } diff --git a/stats/pwc-language-breakdown-summary.json b/stats/pwc-language-breakdown-summary.json index 313e87b86a..88670c073e 100644 --- a/stats/pwc-language-breakdown-summary.json +++ b/stats/pwc-language-breakdown-summary.json @@ -1,4 +1,35 @@ { + "series" : [ + { + "name" : "Contributions", + "dataLabels" : { + "align" : "right", + "style" : { + "fontFamily" : "Verdana, sans-serif", + "fontSize" : "13px" + }, + "enabled" : "true", + "color" : "#FFFFFF", + "format" : "{point.y:.0f}", + "y" : 10, + "rotation" : -90 + }, + "data" : [ + [ + "Blog", + 1005 + ], + [ + "Perl", + 3402 + ], + [ + "Raku", + 2202 + ] + ] + } + ], "title" : { "text" : "Perl Weekly Challenge Contributions [2019 - 2020]" }, @@ -15,7 +46,7 @@ "type" : "column" }, "subtitle" : { - "text" : "Last updated at 2020-09-29 12:17:51 GMT" + "text" : "Last updated at 2020-09-29 19:04:07 GMT" }, "legend" : { "enabled" : "false" @@ -28,36 +59,5 @@ }, "tooltip" : { "pointFormat" : "<b>{point.y:.0f}</b>" - }, - "series" : [ - { - "data" : [ - [ - "Blog", - 1005 - ], - [ - "Perl", - 3402 - ], - [ - "Raku", - 2201 - ] - ], - "name" : "Contributions", - "dataLabels" : { - "style" : { - "fontSize" : "13px", - "fontFamily" : "Verdana, sans-serif" - }, - "color" : "#FFFFFF", - "format" : "{point.y:.0f}", - "enabled" : "true", - "y" : 10, - "rotation" : -90, - "align" : "right" - } - } - ] + } } diff --git a/stats/pwc-language-breakdown.json b/stats/pwc-language-breakdown.json index a20ae6b2b1..5b6bd35067 100644 --- a/stats/pwc-language-breakdown.json +++ b/stats/pwc-language-breakdown.json @@ -1,21 +1,16 @@ { - "yAxis" : { - "title" : { - "text" : "Total Solutions" - } - }, "series" : [ { "data" : [ { + "y" : 142, "name" : "#001", - "drilldown" : "001", - "y" : 142 + "drilldown" : "001" }, { + "name" : "#002", "y" : 111, - "drilldown" : "002", - "name" : "#002" + "drilldown" : "002" }, { "y" : 71, @@ -28,134 +23,134 @@ "y" : 91 }, { - "y" : 72, "name" : "#005", + "y" : 72, "drilldown" : "005" }, { "y" : 52, - "drilldown" : "006", - "name" : "#006" + "name" : "#006", + "drilldown" : "006" }, { "drilldown" : "007", - "name" : "#007", - "y" : 59 + "y" : 59, + "name" : "#007" }, { - "drilldown" : "008", + "y" : 72, "name" : "#008", - "y" : 72 + "drilldown" : "008" }, { - "drilldown" : "009", + "y" : 70, "name" : "#009", - "y" : 70 + "drilldown" : "009" }, { - "y" : 60, "drilldown" : "010", + "y" : 60, "name" : "#010" }, { - "drilldown" : "011", + "y" : 79, "name" : "#011", - "y" : 79 + "drilldown" : "011" }, { - "y" : 83, "name" : "#012", + "y" : 83, "drilldown" : "012" }, { "y" : 78, - "drilldown" : "013", - "name" : "#013" + "name" : "#013", + "drilldown" : "013" }, { "drilldown" : "014", - "name" : "#014", - "y" : 96 + "y" : 96, + "name" : "#014" }, { - "name" : "#015", "drilldown" : "015", + "name" : "#015", "y" : 93 }, { "drilldown" : "016", - "name" : "#016", - "y" : 66 + "y" : 66, + "name" : "#016" }, { - "y" : 79, "name" : "#017", + "y" : 79, "drilldown" : "017" }, { - "drilldown" : "018", + "y" : 76, "name" : "#018", - "y" : 76 + "drilldown" : "018" }, { - "y" : 97, "name" : "#019", + "y" : 97, "drilldown" : "019" }, { - "drilldown" : "020", "name" : "#020", - "y" : 95 + "y" : 95, + "drilldown" : "020" }, { - "drilldown" : "021", "name" : "#021", - "y" : 67 + "y" : 67, + "drilldown" : "021" }, { "y" : 63, - "drilldown" : "022", - "name" : "#022" + "name" : "#022", + "drilldown" : "022" }, { "name" : "#023", - "drilldown" : "023", - "y" : 91 + "y" : 91, + "drilldown" : "023" }, { + "name" : "#024", "y" : 70, - "drilldown" : "024", - "name" : "#024" + "drilldown" : "024" }, { + "drilldown" : "025", "y" : 55, - "name" : "#025", - "drilldown" : "025" + "name" : "#025" }, { + "name" : "#026", "y" : 70, - "drilldown" : "026", - "name" : "#026" + "drilldown" : "026" }, { - "y" : 58, "drilldown" : "027", - "name" : "#027" + "name" : "#027", + "y" : 58 }, { - "y" : 78, "drilldown" : "028", - "name" : "#028" + "name" : "#028", + "y" : 78 }, { - "y" : 77, "name" : "#029", + "y" : 77, "drilldown" : "029" }, { - "drilldown" : "030", "name" : "#030", - "y" : 115 + "y" : 115, + "drilldown" : "030" }, { "y" : 87, @@ -164,13 +159,13 @@ }, { "name" : "#032", - "drilldown" : "032", - "y" : 92 + "y" : 92, + "drilldown" : "032" }, { - "name" : "#033", "drilldown" : "033", - "y" : 108 + "y" : 108, + "name" : "#033" }, { "y" : 62, @@ -183,54 +178,54 @@ "y" : 62 }, { + "name" : "#036", "y" : 66, - "drilldown" : "036", - "name" : "#036" + "drilldown" : "036" }, { - "name" : "#037", "drilldown" : "037", - "y" : 65 + "y" : 65, + "name" : "#037" }, { - "y" : 65, "drilldown" : "038", + "y" : 65, "name" : "#038" }, { - "y" : 60, + "drilldown" : "039", "name" : "#039", - "drilldown" : "039" + "y" : 60 }, { - "drilldown" : "040", + "y" : 71, "name" : "#040", - "y" : 71 + "drilldown" : "040" }, { - "y" : 74, "name" : "#041", + "y" : 74, "drilldown" : "041" }, { - "name" : "#042", "drilldown" : "042", + "name" : "#042", "y" : 88 }, { - "drilldown" : "043", + "y" : 66, "name" : "#043", - "y" : 66 + "drilldown" : "043" }, { - "y" : 82, + "drilldown" : "044", "name" : "#044", - "drilldown" : "044" + "y" : 82 }, { "name" : "#045", - "drilldown" : "045", - "y" : 94 + "y" : 94, + "drilldown" : "045" }, { "y" : 85, @@ -239,28 +234,28 @@ }, { "drilldown" : "047", - "name" : "#047", - "y" : 82 + "y" : 82, + "name" : "#047" }, { + "drilldown" : "048", "y" : 106, - "name" : "#048", - "drilldown" : "048" + "name" : "#048" }, { "drilldown" : "049", - "name" : "#049", - "y" : 85 + "y" : 85, + "name" : "#049" }, { "drilldown" : "050", - "name" : "#050", - "y" : 96 + "y" : 96, + "name" : "#050" }, { + "y" : 87, "name" : "#051", - "drilldown" : "051", - "y" : 87 + "drilldown" : "051" }, { "drilldown" : "052", @@ -268,14 +263,14 @@ "y" : 89 }, { + "drilldown" : "053", "y" : 99, - "name" : "#053", - "drilldown" : "053" + "name" : "#053" }, { "drilldown" : "054", - "name" : "#054", - "y" : 101 + "y" : 101, + "name" : "#054" }, { "y" : 86, @@ -283,8 +278,8 @@ "drilldown" : "055" }, { - "y" : 93, "name" : "#056", + "y" : 93, "drilldown" : "056" }, { @@ -293,14 +288,14 @@ "drilldown" : "057" }, { + "y" : 67, "name" : "#058", - "drilldown" : "058", - "y" : 67 + "drilldown" : "058" }, { - "drilldown" : "059", "name" : "#059", - "y" : 87 + "y" : 87, + "drilldown" : "059" }, { "y" : 83, @@ -308,14 +303,14 @@ "drilldown" : "060" }, { - "name" : "#061", "drilldown" : "061", - "y" : 79 + "y" : 79, + "name" : "#061" }, { - "y" : 54, + "drilldown" : "062", "name" : "#062", - "drilldown" : "062" + "y" : 54 }, { "y" : 87, @@ -323,24 +318,24 @@ "drilldown" : "063" }, { - "y" : 78, "drilldown" : "064", - "name" : "#064" + "name" : "#064", + "y" : 78 }, { + "drilldown" : "065", "y" : 71, - "name" : "#065", - "drilldown" : "065" + "name" : "#065" }, { + "name" : "#066", "y" : 82, - "drilldown" : "066", - "name" : "#066" + "drilldown" : "066" }, { + "y" : 88, "name" : "#067", - "drilldown" : "067", - "y" : 88 + "drilldown" : "067" }, { "drilldown" : "068", @@ -348,14 +343,14 @@ "y" : 73 }, { - "y" : 81, + "drilldown" : "069", "name" : "#069", - "drilldown" : "069" + "y" : 81 }, { + "drilldown" : "070", "y" : 91, - "name" : "#070", - "drilldown" : "070" + "name" : "#070" }, { "y" : 76, @@ -363,19 +358,19 @@ "drilldown" : "071" }, { - "y" : 110, "drilldown" : "072", + "y" : 110, "name" : "#072" }, { - "name" : |
