diff options
| -rw-r--r-- | challenge-068/mohammad-anwar/perl/ch-1.pl | 93 | ||||
| -rw-r--r-- | challenge-068/mohammad-anwar/perl/ch-1a.pl | 82 | ||||
| -rw-r--r-- | stats/pwc-current.json | 87 | ||||
| -rw-r--r-- | stats/pwc-language-breakdown-summary.json | 60 | ||||
| -rw-r--r-- | stats/pwc-language-breakdown.json | 992 | ||||
| -rw-r--r-- | stats/pwc-leaders.json | 350 | ||||
| -rw-r--r-- | stats/pwc-summary-1-30.json | 108 | ||||
| -rw-r--r-- | stats/pwc-summary-121-150.json | 44 | ||||
| -rw-r--r-- | stats/pwc-summary-151-180.json | 72 | ||||
| -rw-r--r-- | stats/pwc-summary-31-60.json | 122 | ||||
| -rw-r--r-- | stats/pwc-summary-61-90.json | 112 | ||||
| -rw-r--r-- | stats/pwc-summary-91-120.json | 40 | ||||
| -rw-r--r-- | stats/pwc-summary.json | 40 |
13 files changed, 1196 insertions, 1006 deletions
diff --git a/challenge-068/mohammad-anwar/perl/ch-1.pl b/challenge-068/mohammad-anwar/perl/ch-1.pl new file mode 100644 index 0000000000..d87629c8ae --- /dev/null +++ b/challenge-068/mohammad-anwar/perl/ch-1.pl @@ -0,0 +1,93 @@ +#!/usr/bin/perl + +# +# Perl Weekly Challenge - 068 +# +# Task #1: Zero Matrix +# +# https://perlweeklychallenge.org/blog/perl-weekly-challenge-068/ +# + +use strict; +use warnings; + +my $R = $ARGV[0]; +my $C = $ARGV[1]; + +my $matrix; +if (defined $R && defined $C) { + die "ERROR: Invalid rows [$R].\n" unless ($R =~ /^\d+$/ && $R >=2 ); + die "ERROR: Invalid cols [$C].\n" unless ($C =~ /^\d+$/ && $C >=2 ); + + $matrix = get_matrix(--$R, --$C); +} +else { + $matrix = [ + [1, 0, 1], + [1, 1, 1], + [1, 0, 1], + ]; +} + +my $zero_m = make_zero_matrix($matrix); + +print matrix($matrix), "\n"; +print matrix($zero_m), "\n"; + +# +# +# METHODS + +sub make_zero_matrix { + my ($matrix) = @_; + + my $rows = $#$matrix; + my $cols = $#{$matrix->[0]}; + + my $zero_matrix = []; + foreach my $r (0..$rows) { + foreach my $c (0..$cols) { + if ($matrix->[$r][$c] == 0) { + # make zero row + $zero_matrix->[$r][$_] = 0 foreach (0..$cols); + # make zero col + $zero_matrix->[$_][$c] = 0 foreach (0..$rows); + } + } + } + + # fill empty cells, if any. + foreach my $r (0..$rows) { + foreach my $c (0..$cols) { + $zero_matrix->[$r][$c] = 1 unless + defined $zero_matrix->[$r][$c]; + } + } + + return $zero_matrix; +} + +sub matrix { + my ($matrix) = @_; + + my $rows = $#$matrix; + my $cols = $#{$matrix->[0]}; + foreach my $r (0..$rows) { + print sprintf("[ %s ]\n", join ', ', @{$matrix->[$r]}); + } +} + +sub get_matrix { + my ($rows, $cols) = @_; + + my $minimum = 0; + my $maximum = 2; + my $matrix = []; + foreach my $r (0..$rows) { + foreach my $c (0..$cols) { + $matrix->[$r][$c] = int($minimum + rand($maximum - $minimum)); + } + } + + return $matrix; +} diff --git a/challenge-068/mohammad-anwar/perl/ch-1a.pl b/challenge-068/mohammad-anwar/perl/ch-1a.pl new file mode 100644 index 0000000000..d9d369e2d5 --- /dev/null +++ b/challenge-068/mohammad-anwar/perl/ch-1a.pl @@ -0,0 +1,82 @@ +#!/usr/bin/perl + +# +# Perl Weekly Challenge - 068 +# +# Task #1: Zero Matrix +# +# https://perlweeklychallenge.org/blog/perl-weekly-challenge-068/ +# + +use strict; +use warnings; + +use Test::More; +use Test::Deep; + +is_deeply( make_zero_matrix([[1, 0, 1],[1, 1, 1],[1, 1, 1]]), + [[0, 0, 0],[1, 0, 1],[1, 0, 1]], + 'testing example 1' ); +is_deeply( make_zero_matrix([[1, 0, 1],[1, 1, 1],[1, 0, 1]]), + [[0, 0, 0],[1, 0, 1],[0, 0, 0]], + 'testing example 2' ); + +done_testing; + +# +# +# METHODS + +sub make_zero_matrix { + my ($matrix) = @_; + + my $rows = $#$matrix; + my $cols = $#{$matrix->[0]}; + + my $zero_matrix = []; + foreach my $r (0..$rows) { + foreach my $c (0..$cols) { + if ($matrix->[$r][$c] == 0) { + # make zero row + $zero_matrix->[$r][$_] = 0 foreach (0..$cols); + # make zero col + $zero_matrix->[$_][$c] = 0 foreach (0..$rows); + } + } + } + + # fill empty cells, if any. + foreach my $r (0..$rows) { + foreach my $c (0..$cols) { + $zero_matrix->[$r][$c] = 1 unless + defined $zero_matrix->[$r][$c]; + } + } + + return $zero_matrix; +} + +sub matrix { + my ($matrix) = @_; + + my $rows = $#$matrix; + my $cols = $#{$matrix->[0]}; + foreach my $r (0..$rows) { + print sprintf("[ %s ]\n", join ', ', @{$matrix->[$r]}); + } +} + +sub get_matrix { + my ($rows, $cols) = @_; + + my $minimum = 0; + my $maximum = 2; + my $matrix = []; + foreach my $r (0..$rows) { + foreach my $c (0..$cols) { + $matrix->[$r][$c] = int($minimum + rand($maximum - $minimum)); + } + } + + return $matrix; +} diff --git a/stats/pwc-current.json b/stats/pwc-current.json index a7baac97ce..a6506527d2 100644 --- a/stats/pwc-current.json +++ b/stats/pwc-current.json @@ -1,29 +1,27 @@ { - "subtitle" : { - "text" : "[Champions: 7] Last updated at 2020-07-07 03:27:35 GMT" - }, "plotOptions" : { "series" : { "dataLabels" : { - "format" : "{point.y}", - "enabled" : 1 + "enabled" : 1, + "format" : "{point.y}" }, "borderWidth" : 0 } }, - "chart" : { - "type" : "column" - }, "yAxis" : { "title" : { "text" : "Total Solutions" } }, + "subtitle" : { + "text" : "[Champions: 8] Last updated at 2020-07-07 05:59:00 GMT" + }, + "title" : { + "text" : "Perl Weekly Challenge - 068" + }, "drilldown" : { "series" : [ { - "id" : "Andrew Shitov", - "name" : "Andrew Shitov", "data" : [ [ "Raku", @@ -33,11 +31,13 @@ "Blog", 1 ] - ] + ], + "name" : "Andrew Shitov", + "id" : "Andrew Shitov" }, { - "id" : "E. Choroba", "name" : "E. Choroba", + "id" : "E. Choroba", "data" : [ [ "Perl", @@ -46,6 +46,8 @@ ] }, { + "id" : "Javier Luque", + "name" : "Javier Luque", "data" : [ [ "Perl", @@ -59,9 +61,7 @@ "Blog", 1 ] - ], - "id" : "Javier Luque", - "name" : "Javier Luque" + ] }, { "id" : "Luca Ferrari", @@ -88,8 +88,18 @@ ] }, { - "id" : "Simon Proctor", + "name" : "Mohammad S Anwar", + "id" : "Mohammad S Anwar", + "data" : [ + [ + "Perl", + 1 + ] + ] + }, + { "name" : "Simon Proctor", + "id" : "Simon Proctor", "data" : [ [ "Raku", @@ -104,28 +114,30 @@ 2 ] ], - "name" : "Walt Mankowski", - "id" : "Walt Mankowski" + "id" : "Walt Mankowski", + "name" : "Walt Mankowski" } ] }, "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 + "followPointer" : 1, + "pointFormat" : "<span style='color:{point.color}'>{point.name}</span>: <b>{point.y:f}</b><br/>" }, - "title" : { - "text" : "Perl Weekly Challenge - 068" + "legend" : { + "enabled" : 0 + }, + "xAxis" : { + "type" : "category" }, "series" : [ { "name" : "Perl Weekly Challenge - 068", - "colorByPoint" : 1, "data" : [ { - "drilldown" : "Andrew Shitov", "y" : 2, - "name" : "Andrew Shitov" + "name" : "Andrew Shitov", + "drilldown" : "Andrew Shitov" }, { "drilldown" : "E. Choroba", @@ -133,9 +145,9 @@ "y" : 2 }, { - "name" : "Javier Luque", "y" : 5, - "drilldown" : "Javier Luque" + "drilldown" : "Javier Luque", + "name" : "Javier Luque" }, { "y" : 4, @@ -143,27 +155,30 @@ "drilldown" : "Luca Ferrari" }, { - "drilldown" : "Mark Anderson", "name" : "Mark Anderson", + "drilldown" : "Mark Anderson", + "y" : 1 + }, + { + "drilldown" : "Mohammad S Anwar", + "name" : "Mohammad S Anwar", "y" : 1 }, { - "name" : "Simon Proctor", "y" : 2, + "name" : "Simon Proctor", "drilldown" : "Simon Proctor" }, { - "drilldown" : "Walt Mankowski", "y" : 2, + "drilldown" : "Walt Mankowski", "name" : "Walt Mankowski" } - ] + ], + "colorByPoint" : 1 } ], - "xAxis" : { - "type" : "category" - }, - "legend" : { - "enabled" : 0 + "chart" : { + "type" : "column" } } diff --git a/stats/pwc-language-breakdown-summary.json b/stats/pwc-language-breakdown-summary.json index 0cb5314ea3..5fff0c06ad 100644 --- a/stats/pwc-language-breakdown-summary.json +++ b/stats/pwc-language-breakdown-summary.json @@ -1,31 +1,34 @@ { - "chart" : { - "type" : "column" + "xAxis" : { + "labels" : { + "style" : { + "fontSize" : "13px", + "fontFamily" : "Verdana, sans-serif" + } + }, + "type" : "category" }, - "subtitle" : { - "text" : "Last updated at 2020-07-07 03:27:35 GMT" + "legend" : { + "enabled" : "false" }, - "yAxis" : { - "title" : { - "text" : null - }, - "min" : 0 + "tooltip" : { + "pointFormat" : "<b>{point.y:.0f}</b>" }, "series" : [ { - "name" : "Contributions", "dataLabels" : { - "rotation" : -90, - "enabled" : "true", - "format" : "{point.y:.0f}", - "color" : "#FFFFFF", + "align" : "right", "style" : { - "fontSize" : "13px", - "fontFamily" : "Verdana, sans-serif" + "fontFamily" : "Verdana, sans-serif", + "fontSize" : "13px" }, + "rotation" : -90, "y" : 10, - "align" : "right" + "color" : "#FFFFFF", + "enabled" : "true", + "format" : "{point.y:.0f}" }, + "name" : "Contributions", "data" : [ [ "Blog", @@ -33,7 +36,7 @@ ], [ "Perl", - 2795 + 2796 ], [ "Raku", @@ -42,22 +45,19 @@ ] } ], - "tooltip" : { - "pointFormat" : "<b>{point.y:.0f}</b>" + "chart" : { + "type" : "column" }, "title" : { "text" : "Perl Weekly Challenge Contributions [2019 - 2020]" }, - "xAxis" : { - "labels" : { - "style" : { - "fontFamily" : "Verdana, sans-serif", - "fontSize" : "13px" - } - }, - "type" : "category" + "subtitle" : { + "text" : "Last updated at 2020-07-07 05:59:00 GMT" }, - "legend" : { - "enabled" : "false" + "yAxis" : { + "title" : { + "text" : null + }, + "min" : 0 } } diff --git a/stats/pwc-language-breakdown.json b/stats/pwc-language-breakdown.json index c6b438f640..2f912ceec8 100644 --- a/stats/pwc-language-breakdown.json +++ b/stats/pwc-language-breakdown.json @@ -1,27 +1,371 @@ { - "subtitle" : { - "text" : "Click the columns to drilldown the language breakdown. Last updated at 2020-07-07 03:27:35 GMT" - }, - "plotOptions" : { - "series" : { - "borderWidth" : 0, - "dataLabels" : { - "enabled" : 1, - "format" : "{point.y}" - } - } - }, "chart" : { "type" : "column" }, - "yAxis" : { - "title" : { - "text" : "Total Solutions" + "series" : [ + { + "name" : "Perl Weekly Challenge Languages", + "data" : [ + { + "name" : "#001", + "drilldown" : "001", + "y" : 142 + }, + { + "y" : 109, + "name" : "#002", + "drilldown" : "002" + }, + { + "y" : 71, + "drilldown" : "003", + "name" : "#003" + }, + { + "drilldown" : "004", + "name" : "#004", + "y" : 91 + }, + { + "drilldown" : "005", + "name" : "#005", + "y" : 72 + }, + { + "name" : "#006", + "drilldown" : "006", + "y" : 52 + }, + { + "y" : 59, + "name" : "#007", + "drilldown" : "007" + }, + { + "name" : "#008", + "drilldown" : "008", + "y" : 72 + }, + { + "drilldown" : "009", + "name" : "#009", + "y" : 68 + }, + { + "y" : 60, + "name" : "#010", + "drilldown" : "010" + }, + { + "y" : 79, + "name" : "#011", + "drilldown" : "011" + }, + { + "y" : 83, + "name" : "#012", + "drilldown" : "012" + }, + { + "drilldown" : "013", + "name" : "#013", + "y" : 76 + }, + { + "y" : 96, + "name" : "#014", + "drilldown" : "014" + }, + { + "y" : 93, + "name" : "#015", + "drilldown" : "015" + }, + { + "y" : 66, + "drilldown" : "016", + "name" : "#016" + }, + { + "drilldown" : "017", + "name" : "#017", + "y" : 79 + }, + { + "name" : "#018", + "drilldown" : "018", + "y" : 76 + }, + { + "name" : "#019", + "drilldown" : "019", + "y" : 97 + }, + { + "y" : 95, + "name" : "#020", + "drilldown" : "020" + }, + { + "drilldown" : "021", + "name" : "#021", + "y" : 67 + }, + { + "y" : 63, + "drilldown" : "022", + "name" : "#022" + }, + { + "y" : 91, + "name" : "#023", + "drilldown" : "023" + }, + { + "name" : "#024", + "drilldown" : "024", + "y" : 70 + }, + { + "y" : 55, + "drilldown" : "025", + "name" : "#025" + }, + { + "name" : "#026", + "drilldown" : "026", + "y" : 70 + }, + { + "drilldown" : "027", + "name" : "#027", + "y" : 58 + }, + { + "drilldown" : "028", + "name" : "#028", + "y" : 78 + }, + { + "name" : "#029", + "drilldown" : "029", + "y" : 77 + }, + { + "drilldown" : "030", + "name" : "#030", + "y" : 115 + }, + { + "y" : 87, + "drilldown" : "031", + "name" : "#031" + }, + { + "y" : 92, + "drilldown" : "032", + "name" : "#032" + }, + { + "y" : 108, + "drilldown" : "033", + "name" : "#033" + }, + { + "y" : 62, + "name" : "#034", + "drilldown" : "034" + }, + { + "drilldown" : "035", + "name" : "#035", + "y" : 62 + }, + { + "y" : 66, + "drilldown" : "036", + "name" : "#036" + }, + { + "y" : 65, + "name" : "#037", + "drilldown" : "037" + }, + { + "drilldown" : "038", + "name" : "#038", + "y" : 65 + }, + { + "name" : "#039", + "drilldown" : "039", + "y" : 60 + }, + { + "drilldown" : "040", + "name" : "#040", + "y" : 71 + }, + { + "y" : 74, + "name" : "#041", + "drilldown" : "041" + }, + { + "name" : "#042", + "drilldown" : "042", + "y" : 88 + }, + { + "name" : "#043", + "drilldown" : "043", + "y" : 66 + }, + { + "y" : 82, + "drilldown" : "044", + "name" : "#044" + }, + { + "drilldown" : "045", + "name" : "#045", + "y" : 94 + }, + { + "y" : 85, + "drilldown" : "046", + "name" : "#046" + }, + { + "y" : 82, + "drilldown" : "047", + "name" : "#047" + }, + { + "y" : 106, + "name" : "#048", + "drilldown" : "048" + }, + { + "drilldown" : "049", + "name" : "#049", + "y" : 85 + }, + { + "name" : "#050", + "drilldown" : "050", + "y" : 96 + }, + { + "y" : 87, + "name" : "#051", + "drilldown" : "051" + }, + { + "y" : 89, + "drilldown" : "052", + "name" : "#052" + }, + { + "drilldown" : "053", + "name" : "#053", + "y" : 99 + }, + { + "name" : "#054", + "drilldown" : "054", + "y" : 99 + }, + { + "name" : "#055", + "drilldown" : "055", + "y" : 86 + }, + { + "y" : 93, + "name" : "#056", + "drilldown" : "056" + }, + { + "drilldown" : "057", + "name" : "#057", + "y" : 78 + }, + { + "drilldown" : "058", + "name" : "#058", + "y" : 62 + }, + { + "drilldown" : "059", + "name" : "#059", + "y" : 82 + }, + { + "drilldown" : "060", + "name" : "#060", + "y" : 78 + }, + { + "name" : "#061", + "drilldown" : "061", + "y" : 79 + }, + { + "name" : "#062", + "drilldown" : "062", + "y" : 54 + }, + { + "y" : 87, + "name" : "#063", + "drilldown" : "063" + }, + { + "name" : "#064", + "drilldown" : "064", + "y" : 76 + }, + { + "y" : 71, + "drilldown" : "065", + "name" : "#065" + }, + { + "drilldown" : "066", + "name" : "#066", + "y" : 81 + }, + { + "drilldown" : "067", + "name" : "#067", + "y" : 86 + }, + { + "drilldown" : "068", + "name" : "#068", + "y" : 19 + } + ], + "colorByPoint" : "true" } + ], + "legend" : { + "enabled" : "false" + }, + "xAxis" : { + "type" : "category" + }, + "tooltip" : { + "pointFormat" : "<span style=\"color:{point.color}\">Challenge {point.name}</span>: <b>{point.y:f}</b><br/>", + "followPointer" : "true", + "headerFormat" : "<span style=\"font-size:11px\"></span>" }, "drilldown" : { "series" : [ { + "id" : "001", + "name" : "001", "data" : [ [ "Perl", @@ -35,11 +379,11 @@ "Blog", 11 ] - ], - "id" : "001", - "name" : "001" + ] }, { + "id" : "002", + "name" : "002", "data" : [ [ "Perl", @@ -53,9 +397,7 @@ "Blog", 10 ] - ], - "name" : "002", - "id" : "002" + ] }, { "data" : [ @@ -94,8 +436,6 @@ ] }, { - "id" : "005", - "name" : "005", "data" : [ [ "Perl", @@ -109,9 +449,13 @@ "Blog", 12 ] - ] + ], + "name" : "005", + "id" : "005" }, { + "name" : "006", + "id" : "006", "data" : [ [ "Perl", @@ -125,9 +469,7 @@ "Blog", 7 ] - ], - "id" : "006", - "name" : "006" + ] }, { "name" : "007", @@ -148,6 +490,8 @@ ] }, { + "name" : "008", + "id" : "008", "data" : [ [ "Perl", @@ -161,9 +505,7 @@ "Blog", 12 ] - ], - "id" : "008", - "name" : "008" + ] }, { "name" : "009", @@ -256,8 +598,6 @@ "id" : "013" }, { - "name" : "014", - "id" : "014", "data" : [ [ "Perl", @@ -271,7 +611,9 @@ "Blog", 15 ] - ] + ], + "id" : "014", + "name" : "014" }, { "data" : [ @@ -288,8 +630,8 @@ 15 ] ], - "name" : "015", - "id" : "015" + "id" : "015", + "name" : "015" }, { "name" : "016", @@ -310,8 +652,6 @@ ] }, { - "id" : "017", - "name" : "017", "data" : [ [ "Perl", @@ -325,7 +665,9 @@ "Blog", 12 ] - ] + ], + "name" : "017", + "id" : "017" }, { "data" : [ @@ -342,8 +684,8 @@ 14 ] ], - "id" : "018", - "name" : "018" + "name" : "018", + "id" : "018" }, { "data" : [ @@ -360,10 +702,12 @@ 13 ] ], - "id" : "019", - "name" : "019" + "name" : "019", + "id" : "019" }, { + "name" : "020", + "id" : "020", "data" : [ [ "Perl", @@ -377,11 +721,11 @@ "Blog", 13 ] - ], - "name" : "020", - "id" : "020" + ] }, { + "id" : "021", + "name" : "021", "data" : [ [ "Perl", @@ -395,11 +739,11 @@ "Blog", 10 ] - ], - "name" : "021", - "id" : "021" + ] }, { + "name" : "022", + "id" : "022", "data" : [ [ "Perl", @@ -413,11 +757,11 @@ "Blog", 10 ] - ], - "name" : "022", - "id" : "022" + ] }, { + "id" : "023", + "name" : "023", "data" : [ [ "Perl", @@ -431,13 +775,9 @@ "Blog", 12 ] - ], - "name" : "023", - "id" : "023" + ] }, { - "name" : "024", - "id" : "024", "data" : [ [ "Perl", @@ -451,9 +791,13 @@ "Blog", 11 ] - ] + ], + "name" : "024", + "id" : "024" }, { + "name" : "025", + "id" : "025", "data" : [ [ "Perl", @@ -467,13 +811,11 @@ "Blog", 12 ] - ], - "name" : "025", - "id" : "025" + ] }, { - "name" : "026", "id" : "026", + "name" : "026", "data" : [ [ "Perl", @@ -504,8 +846,8 @@ 9 ] ], - "id" : "027", - "name" : "027" + "name" : "027", + "id" : "027" }, { "name" : "028", @@ -540,12 +882,10 @@ 12 ] ], - "id" : "029", - "name" : "029" + "name" : "029", + "id" : "029" }, { - "id" : "030", - "name" : "030", "data" : [ [ "Perl", @@ -559,7 +899,9 @@ "Blog", 10 ] - ] + ], + "id" : "030", + "name" : "030" }, { "data" : [ @@ -576,12 +918,12 @@ 9 ] ], - "id" : "031", - "name" : "031" + "name" : "031", + "id" : "031" }, { - "id" : "032", "name" : "032", + "id" : "032", "data" : [ [ "Perl", @@ -598,8 +940,6 @@ ] }, { - "name" : "033", - "id" : "033", "data" : [ [ "Perl", @@ -613,11 +953,11 @@ "Blog", 10 ] - ] + ], + "id" : "033", + "name" : "033" }, |
