aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMohammad S Anwar <mohammad.anwar@yahoo.com>2020-03-23 19:05:53 +0000
committerMohammad S Anwar <mohammad.anwar@yahoo.com>2020-03-23 19:05:53 +0000
commit2c1e54579bf8e261ea10d1e797d7e0b3a4ae8313 (patch)
treefc382aa0d826983d629115207b5aca0e12421e5e
parent79645b6e55398688779aee58045e8339966c881d (diff)
downloadperlweeklychallenge-club-2c1e54579bf8e261ea10d1e797d7e0b3a4ae8313.tar.gz
perlweeklychallenge-club-2c1e54579bf8e261ea10d1e797d7e0b3a4ae8313.tar.bz2
perlweeklychallenge-club-2c1e54579bf8e261ea10d1e797d7e0b3a4ae8313.zip
- Added Perl solution for Rotate Matrix.
-rw-r--r--challenge-053/mohammad-anwar/perl/ch-1.pl66
-rw-r--r--stats/pwc-current.json115
-rw-r--r--stats/pwc-language-breakdown-summary.json72
-rw-r--r--stats/pwc-language-breakdown.json780
-rw-r--r--stats/pwc-leaders.json390
-rw-r--r--stats/pwc-summary-1-30.json48
-rw-r--r--stats/pwc-summary-121-150.json106
-rw-r--r--stats/pwc-summary-151-180.json56
-rw-r--r--stats/pwc-summary-31-60.json28
-rw-r--r--stats/pwc-summary-61-90.json94
-rw-r--r--stats/pwc-summary-91-120.json48
-rw-r--r--stats/pwc-summary.json354
12 files changed, 1119 insertions, 1038 deletions
diff --git a/challenge-053/mohammad-anwar/perl/ch-1.pl b/challenge-053/mohammad-anwar/perl/ch-1.pl
new file mode 100644
index 0000000000..367e00ce7a
--- /dev/null
+++ b/challenge-053/mohammad-anwar/perl/ch-1.pl
@@ -0,0 +1,66 @@
+#!/usr/bin/perl
+
+use strict;
+use warnings;
+
+use Test::More;
+use Test::Deep;
+
+my $unit_tests = {
+ 90 => {
+ in => [ [ 1, 2, 3 ], [ 4, 5, 6 ], [ 7, 8, 9 ] ],
+ out => [ [ 7, 4, 1 ], [ 8, 5, 2 ], [ 9, 6, 3 ] ],
+ },
+ 180 => {
+ in => [ [ 1, 2, 3 ], [ 4, 5, 6 ], [ 7, 8, 9 ] ],
+ out => [ [ 9, 8, 7 ], [ 6, 5, 4 ], [ 3, 2, 1 ] ],
+ },
+ 270 => {
+ in => [ [ 1, 2, 3 ], [ 4, 5, 6 ], [ 7, 8, 9 ] ],
+ out => [ [ 3, 6, 9 ], [ 2, 5, 8 ], [ 1, 4, 7 ] ],
+ },
+};
+
+foreach my $degree (sort { $a <=> $b } keys %$unit_tests) {
+ my $in = $unit_tests->{$degree}->{in};
+ my $out = $unit_tests->{$degree}->{out};
+ cmp_deeply( rotate_matrix($in, $degree),
+ $out,
+ "testing $degree rotation" );
+}
+
+done_testing;
+
+#
+#
+# METHODS
+
+sub rotate_matrix {
+ my ($matrix, $degree) = @_;
+
+ my $_matrix;
+ foreach my $i ( 1 .. int($degree/90) ) {
+ $_matrix = _rotate_matrix($matrix);
+ $matrix = $_matrix;
+ }
+
+ return $_matrix;
+}
+
+sub _rotate_matrix {
+ my ($matrix) = @_;
+
+ my $rows = @$matrix;
+ my $cols = @{$matrix->[0]};
+
+ my $_matrix = [];
+ foreach my $i ( 0 .. $rows-1 ) {
+ my $k = 2;
+ foreach my $j ( 0 .. $cols-1 ) {
+ $_matrix->[$i][$j] = $matrix->[$k][$i];
+ $k--;
+ }
+ }
+
+ return $_matrix;
+}
diff --git a/stats/pwc-current.json b/stats/pwc-current.json
index 35066bba41..48758f168b 100644
--- a/stats/pwc-current.json
+++ b/stats/pwc-current.json
@@ -1,6 +1,14 @@
{
- "subtitle" : {
- "text" : "[Champions: 9] Last updated at 2020-03-23 18:15:13 GMT"
+ "tooltip" : {
+ "followPointer" : 1,
+ "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/>"
+ },
+ "xAxis" : {
+ "type" : "category"
+ },
+ "chart" : {
+ "type" : "column"
},
"title" : {
"text" : "Perl Weekly Challenge - 053"
@@ -8,41 +16,32 @@
"legend" : {
"enabled" : 0
},
- "yAxis" : {
- "title" : {
- "text" : "Total Solutions"
- }
- },
"plotOptions" : {
"series" : {
"dataLabels" : {
- "enabled" : 1,
- "format" : "{point.y}"
+ "format" : "{point.y}",
+ "enabled" : 1
},
"borderWidth" : 0
}
},
- "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/>"
- },
- "xAxis" : {
- "type" : "category"
+ "subtitle" : {
+ "text" : "[Champions: 10] Last updated at 2020-03-23 19:05:25 GMT"
},
"drilldown" : {
"series" : [
{
+ "id" : "Dave Cross",
"data" : [
[
"Perl",
2
]
],
- "name" : "Dave Cross",
- "id" : "Dave Cross"
+ "name" : "Dave Cross"
},
{
+ "name" : "Javier Luque",
"data" : [
[
"Perl",
@@ -57,12 +56,11 @@
1
]
],
- "name" : "Javier Luque",
"id" : "Javier Luque"
},
{
- "id" : "Luca Ferrari",
"name" : "Luca Ferrari",
+ "id" : "Luca Ferrari",
"data" : [
[
"Raku",
@@ -75,27 +73,36 @@
]
},
{
- "name" : "Markus Holzer",
+ "id" : "Markus Holzer",
"data" : [
[
"Raku",
2
]
],
- "id" : "Markus Holzer"
+ "name" : "Markus Holzer"
+ },
+ {
+ "name" : "Mohammad S Anwar",
+ "data" : [
+ [
+ "Perl",
+ 1
+ ]
+ ],
+ "id" : "Mohammad S Anwar"
},
{
- "name" : "Pete Houston",
+ "id" : "Pete Houston",
"data" : [
[
"Perl",
1
]
],
- "id" : "Pete Houston"
+ "name" : "Pete Houston"
},
{
- "name" : "Roger Bell West",
"data" : [
[
"Perl",
@@ -106,49 +113,53 @@
2
]
],
- "id" : "Roger Bell West"
+ "id" : "Roger Bell West",
+ "name" : "Roger Bell West"
},
{
- "id" : "Simon Proctor",
"data" : [
[
"Raku",
2
]
],
+ "id" : "Simon Proctor",
"name" : "Simon Proctor"
},
{
+ "id" : "Wanderdoc",
"data" : [
[
"Perl",
2
]
],
- "name" : "Wanderdoc",
- "id" : "Wanderdoc"
+ "name" : "Wanderdoc"
},
{
"name" : "Yet Ebreo",
+ "id" : "Yet Ebreo",
"data" : [
[
"Perl",
2
]
- ],
- "id" : "Yet Ebreo"
+ ]
}
]
},
- "chart" : {
- "type" : "column"
+ "yAxis" : {
+ "title" : {
+ "text" : "Total Solutions"
+ }
},
"series" : [
{
+ "name" : "Perl Weekly Challenge - 053",
"data" : [
{
- "drilldown" : "Dave Cross",
"y" : 2,
+ "drilldown" : "Dave Cross",
"name" : "Dave Cross"
},
{
@@ -158,42 +169,46 @@
},
{
"drilldown" : "Luca Ferrari",
- "y" : 4,
- "name" : "Luca Ferrari"
+ "name" : "Luca Ferrari",
+ "y" : 4
},
{
"y" : 2,
- "name" : "Markus Holzer",
- "drilldown" : "Markus Holzer"
+ "drilldown" : "Markus Holzer",
+ "name" : "Markus Holzer"
+ },
+ {
+ "name" : "Mohammad S Anwar",
+ "drilldown" : "Mohammad S Anwar",
+ "y" : 1
},
{
"drilldown" : "Pete Houston",
- "y" : 1,
- "name" : "Pete Houston"
+ "name" : "Pete Houston",
+ "y" : 1
},
{
"name" : "Roger Bell West",
- "y" : 4,
- "drilldown" : "Roger Bell West"
+ "drilldown" : "Roger Bell West",
+ "y" : 4
},
{
"drilldown" : "Simon Proctor",
- "y" : 2,
- "name" : "Simon Proctor"
+ "name" : "Simon Proctor",
+ "y" : 2
},
{
"y" : 2,
- "name" : "Wanderdoc",
- "drilldown" : "Wanderdoc"
+ "drilldown" : "Wanderdoc",
+ "name" : "Wanderdoc"
},
{
- "drilldown" : "Yet Ebreo",
+ "y" : 2,
"name" : "Yet Ebreo",
- "y" : 2
+ "drilldown" : "Yet Ebreo"
}
],
- "colorByPoint" : 1,
- "name" : "Perl Weekly Challenge - 053"
+ "colorByPoint" : 1
}
]
}
diff --git a/stats/pwc-language-breakdown-summary.json b/stats/pwc-language-breakdown-summary.json
index 5bf9cbc657..755d402115 100644
--- a/stats/pwc-language-breakdown-summary.json
+++ b/stats/pwc-language-breakdown-summary.json
@@ -1,33 +1,9 @@
{
- "subtitle" : {
- "text" : "Last updated at 2020-03-23 18:15:13 GMT"
- },
- "title" : {
- "text" : "Perl Weekly Challenge Contributions [2019 - 2020]"
- },
- "legend" : {
- "enabled" : "false"
- },
"yAxis" : {
+ "min" : 0,
"title" : {
"text" : null
- },
- "min" : 0
- },
- "tooltip" : {
- "pointFormat" : "<b>{point.y:.0f}</b>"
- },
- "xAxis" : {
- "labels" : {
- "style" : {
- "fontSize" : "13px",
- "fontFamily" : "Verdana, sans-serif"
- }
- },
- "type" : "category"
- },
- "chart" : {
- "type" : "column"
+ }
},
"series" : [
{
@@ -38,26 +14,50 @@
],
[
"Perl",
- 2214
+ 2215
],
[
"Raku",
1359
]
],
- "name" : "Contributions",
"dataLabels" : {
- "enabled" : "true",
+ "rotation" : -90,
+ "y" : 10,
+ "align" : "right",
"style" : {
- "fontSize" : "13px",
- "fontFamily" : "Verdana, sans-serif"
+ "fontFamily" : "Verdana, sans-serif",
+ "fontSize" : "13px"
},
- "y" : 10,
- "rotation" : -90,
"format" : "{point.y:.0f}",
- "align" : "right",
+ "enabled" : "true",
"color" : "#FFFFFF"
- }
+ },
+ "name" : "Contributions"
}
- ]
+ ],
+ "subtitle" : {
+ "text" : "Last updated at 2020-03-23 19:05:25 GMT"
+ },
+ "legend" : {
+ "enabled" : "false"
+ },
+ "title" : {
+ "text" : "Perl Weekly Challenge Contributions [2019 - 2020]"
+ },
+ "chart" : {
+ "type" : "column"
+ },
+ "xAxis" : {
+ "labels" : {
+ "style" : {
+ "fontSize" : "13px",
+ "fontFamily" : "Verdana, sans-serif"
+ }
+ },
+ "type" : "category"
+ },
+ "tooltip" : {
+ "pointFormat" : "<b>{point.y:.0f}</b>"
+ }
}
diff --git a/stats/pwc-language-breakdown.json b/stats/pwc-language-breakdown.json
index 4a91c8d29e..9c69431730 100644
--- a/stats/pwc-language-breakdown.json
+++ b/stats/pwc-language-breakdown.json
@@ -1,16 +1,286 @@
{
- "tooltip" : {
- "followPointer" : "true",
- "pointFormat" : "<span style=\"color:{point.color}\">Challenge {point.name}</span>: <b>{point.y:f}</b><br/>",
- "headerFormat" : "<span style=\"font-size:11px\"></span>"
- },
- "xAxis" : {
- "type" : "category"
+ "yAxis" : {
+ "title" : {
+ "text" : "Total Solutions"
+ }
},
+ "series" : [
+ {
+ "colorByPoint" : "true",
+ "data" : [
+ {
+ "y" : 140,
+ "drilldown" : "001",
+ "name" : "#001"
+ },
+ {
+ "drilldown" : "002",
+ "name" : "#002",
+ "y" : 109
+ },
+ {
+ "y" : 71,
+ "drilldown" : "003",
+ "name" : "#003"
+ },
+ {
+ "y" : 91,
+ "name" : "#004",
+ "drilldown" : "004"
+ },
+ {
+ "name" : "#005",
+ "drilldown" : "005",
+ "y" : 71
+ },
+ {
+ "name" : "#006",
+ "drilldown" : "006",
+ "y" : 52
+ },
+ {
+ "name" : "#007",
+ "drilldown" : "007",
+ "y" : 58
+ },
+ {
+ "name" : "#008",
+ "drilldown" : "008",
+ "y" : 70
+ },
+ {
+ "y" : 68,
+ "name" : "#009",
+ "drilldown" : "009"
+ },
+ {
+ "y" : 60,
+ "drilldown" : "010",
+ "name" : "#010"
+ },
+ {
+ "name" : "#011",
+ "drilldown" : "011",
+ "y" : 79
+ },
+ {
+ "name" : "#012",
+ "drilldown" : "012",
+ "y" : 83
+ },
+ {
+ "y" : 76,
+ "drilldown" : "013",
+ "name" : "#013"
+ },
+ {
+ "y" : 96,
+ "drilldown" : "014",
+ "name" : "#014"
+ },
+ {
+ "drilldown" : "015",
+ "name" : "#015",
+ "y" : 93
+ },
+ {
+ "y" : 66,
+ "drilldown" : "016",
+ "name" : "#016"
+ },
+ {
+ "name" : "#017",
+ "drilldown" : "017",
+ "y" : 79
+ },
+ {
+ "drilldown" : "018",
+ "name" : "#018",
+ "y" : 76
+ },
+ {
+ "drilldown" : "019",
+ "name" : "#019",
+ "y" : 97
+ },
+ {
+ "drilldown" : "020",
+ "name" : "#020",
+ "y" : 95
+ },
+ {
+ "drilldown" : "021",
+ "name" : "#021",
+ "y" : 67
+ },
+ {
+ "drilldown" : "022",
+ "name" : "#022",
+ "y" : 63
+ },
+ {
+ "y" : 91,
+ "name" : "#023",
+ "drilldown" : "023"
+ },
+ {
+ "y" : 70,
+ "drilldown" : "024",
+ "name" : "#024"
+ },
+ {
+ "y" : 55,
+ "name" : "#025",
+ "drilldown" : "025"
+ },
+ {
+ "y" : 70,
+ "name" : "#026",
+ "drilldown" : "026"
+ },
+ {
+ "y" : 58,
+ "name" : "#027",
+ "drilldown" : "027"
+ },
+ {
+ "y" : 78,
+ "drilldown" : "028",
+ "name" : "#028"
+ },
+ {
+ "drilldown" : "029",
+ "name" : "#029",
+ "y" : 77
+ },
+ {
+ "drilldown" : "030",
+ "name" : "#030",
+ "y" : 115
+ },
+ {
+ "name" : "#031",
+ "drilldown" : "031",
+ "y" : 87
+ },
+ {
+ "y" : 92,
+ "drilldown" : "032",
+ "name" : "#032"
+ },
+ {
+ "name" : "#033",
+ "drilldown" : "033",
+ "y" : 108
+ },
+ {
+ "drilldown" : "034",
+ "name" : "#034",
+ "y" : 62
+ },
+ {
+ "name" : "#035",
+ "drilldown" : "035",
+ "y" : 62
+ },
+ {
+ "y" : 63,
+ "name" : "#036",
+ "drilldown" : "036"
+ },
+ {
+ "y" : 63,
+ "name" : "#037",
+ "drilldown" : "037"
+ },
+ {
+ "name" : "#038",
+ "drilldown" : "038",
+ "y" : 65
+ },
+ {
+ "y" : 60,
+ "name" : "#039",
+ "drilldown" : "039"
+ },
+ {
+ "drilldown" : "040",
+ "name" : "#040",
+ "y" : 66
+ },
+ {
+ "drilldown" : "041",
+ "name" : "#041",
+ "y" : 69
+ },
+ {
+ "y" : 88,
+ "drilldown" : "042",
+ "name" : "#042"
+ },
+ {
+ "y" : 65,
+ "name" : "#043",
+ "drilldown" : "043"
+ },
+ {
+ "drilldown" : "044",
+ "name" : "#044",
+ "y" : 81
+ },
+ {
+ "y" : 94,
+ "name" : "#045",
+ "drilldown" : "045"
+ },
+ {
+ "y" : 83,
+ "drilldown" : "046",
+ "name" : "#046"
+ },
+ {
+ "y" : 81,
+ "drilldown" : "047",
+ "name" : "#047"
+ },
+ {
+ "drilldown" : "048",
+ "name" : "#048",
+ "y" : 106
+ },
+ {
+ "y" : 85,
+ "drilldown" : "049",
+ "name" : "#049"
+ },
+ {
+ "y" : 95,
+ "drilldown" : "050",
+ "name" : "#050"
+ },
+ {
+ "drilldown" : "051",
+ "name" : "#051",
+ "y" : 86
+ },
+ {
+ "name" : "#052",
+ "drilldown" : "052",
+ "y" : 82
+ },
+ {
+ "name" : "#053",
+ "drilldown" : "053",
+ "y" : 25
+ }
+ ],
+ "name" : "Perl Weekly Challenge Languages"
+ }
+ ],
"drilldown" : {
"series" : [
{
- "id" : "001",
+ "name" : "001",
"data" : [
[
"Perl",
@@ -25,11 +295,11 @@
11
]
],
- "name" : "001"
+ "id" : "001"
},
{
- "id" : "002",
"name" : "002",
+ "id" : "002",
"data" : [
[
"Perl",
@@ -46,7 +316,6 @@
]
},
{
- "id" : "003",
"data" : [
[
"Perl",
@@ -61,9 +330,12 @@
9
]
],
+ "id" : "003",
"name" : "003"
},
{
+ "name" : "004",
+ "id" : "004",
"data" : [
[
"Perl",
@@ -77,13 +349,11 @@
"Blog",
10
]
- ],
- "name" : "004",
- "id" : "004"
+ ]
},
{
- "id" : "005",
"name" : "005",
+ "id" : "005",
"data" : [
[
"Perl",
@@ -101,6 +371,7 @@
},
{
"name" : "006",
+ "id" : "006",
"data" : [
[
"Perl",
@@ -114,10 +385,10 @@
"Blog",
7
]
- ],
- "id" : "006"
+ ]
},
{
+ "id" : "007",
"data" : [
[
"Perl",
@@ -132,11 +403,11 @@
10
]
],
- "name" : "007",
- "id" : "007"
+ "name" : "007"
},
{
"name" : "008",
+ "id" : "008",
"data" : [
[
"Perl",
@@ -150,11 +421,10 @@
"Blog",
12
]
- ],
- "id" : "008"
+ ]
},
{
- "name" : "009",
+ "id" : "009",
"data" : [
[
"Perl",
@@ -169,9 +439,10 @@
13
]
],
- "id" : "009"
+ "name" : "009"
},
{
+ "id" : "010",
"data" : [
[
"Perl",
@@ -186,10 +457,10 @@
11
]
],
- "name" : "010",
- "id" : "010"
+ "name" : "010"
},
{
+ "id" : "011",
"data" : [
[
"Perl",
@@ -204,8 +475,7 @@
10
]
],
- "name" : "011",
- "id" : "011"
+ "name" : "011"
},
{
"name" : "012",
@@ -226,7 +496,7 @@
"id" : "012"
},
{
- "name" : "013",
+ "id" : "013",
"data" : [
[
"Perl",
@@ -241,11 +511,11 @@
13
]
],
- "id" : "013"
+ "name" : "013"
},
{
- "id" : "014",
"name" : "014",
+ "id" : "014",
"data" : [
[
"Perl",
@@ -280,7 +550,7 @@
"id" : "015"
},
{
- "name" : "016",
+ "id" : "016",
"data" : [
[
"Perl",
@@ -295,7 +565,7 @@
12
]
],
- "id" : "016"
+ "name" : "016"
},
{
"data" : [
@@ -312,11 +582,10 @@
12
]
],
- "name" : "017",
- "id" : "017"
+ "id" : "017",
+ "name" : "017"
},
{
- "id" : "018",
"name" : "018",
"data" : [
[
@@ -331,10 +600,12 @@
"Blog",
14
]
- ]
+ ],
+ "id" : "018"
},
{
"name" : "019",
+ "id" : "019",
"data" : [
[
"Perl",
@@ -348,11 +619,9 @@
"Blog",
13
]
- ],
- "id" : "019"
+ ]
},
{
- "id" : "020",
"data" : [
[
"Perl",
@@ -367,10 +636,11 @@
13
]
],
+ "id" : "020",
"name" : "020"
},
{
- "name" : "021",
+ "id" : "021",
"data" : [
[
"Perl",
@@ -385,10 +655,9 @@
10
]
],
- "id" : "021"
+ "name" : "021"
},
{
- "id" : "022",
"name" : "022",
"data" : [
[
@@ -403,7 +672,8 @@
"Blog",
10
]
- ]
+ ],
+ "id" : "022"
},
{
"data" : [
@@ -420,10 +690,11 @@
12
]
],
- "name" : "023",
- "id" : "023"
+ "id" : "023",
+ "name" : "023"
},
{
+ "name" : "024",
"data" : [
[
"Perl",
@@ -438,10 +709,10 @@
11
]
],
- "name" : "024",
"id" : "024"
},
{
+ "name" : "025",
"id" : "025",
"data" : [
[
@@ -456,11 +727,10 @@
"Blog",
12
]
- ],
- "name" : "025"
+ ]
},
{
- "id" : "026",
+ "name" : "026",
"data" : [
[
"Perl",
@@ -475,10 +745,9 @@
10
]
],
- "name" : "026"
+ "id" : "026"
},
{
- "id" : "027",
"name" : "027",
"data" : [
[
@@ -493,7 +762,8 @@
"Blog",
9
]
- ]
+ ],
+ "id" : "027"
},
{
"data" : [
@@ -510,12 +780,10 @@
9
]
],
- "name" : "028",
- "id" : "028"
+ "id" : "028",
+ "name" : "028"
},
{
- "id" : "029",
- "name" : "029",
"data" : [
[
"Perl",
@@ -529,11 +797,12 @@
"Blog",
12
]
- ]
+ ],
+ "id" : "029",
+ "name" : "029"
},
{
"id" : "030",
- "name" : "030",
"data" : [
[
"Perl",
@@ -547,9 +816,11 @@
"Blog",
10
]
- ]
+ ],
+ "name" : "030"
},
{
+ "id" : "031",
"data" : [
[
"Perl",
@@ -564,11 +835,9 @@
9
]
],
- "name" : "031",
- "id" : "031"
+ "name" : "031"
},
{
- "id" : "032",
"name" : "032",
"data" : [
[
@@ -583,10 +852,12 @@
"Blog",
10
]
- ]
+ ],
+ "id" : "032"
},
{
"name" : "033",
+ "id" : "033",
"data" : [
[
"Perl",
@@ -600,11 +871,11 @@
"Blog",
10
]
- ],
- "id" : "033"
+ ]
},
{
"name" : "034",
+ "id" : "034",
"data" : [
[
"Perl",
@@ -618,11 +889,10 @@
"Blog",
11
]
- ],
- "id" : "034"
+ ]
},
{
- "id" : "035",
+ "name" : "035",
"data" : [
[
"Perl",
@@ -637,11 +907,10 @@
9
]
],
- "name" : "035"
+ "id" : "035"
},
{
"id" : "036",
- "name" : "036",
"data" : [
[
"Perl",
@@ -655,7 +924,8 @@
"Blog",
10
]
- ]
+ ],
+ "name" : "036"