aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMohammad S Anwar <mohammad.anwar@yahoo.com>2020-01-20 18:06:42 +0000
committerMohammad S Anwar <mohammad.anwar@yahoo.com>2020-01-20 18:06:42 +0000
commit82131cfdef6a35e90af50b56e6f0f80164a9481d (patch)
tree3e812cfa222739a1c644a0ff1536b0789235965f
parentb23bbe591742aaaf84a3fbe907ff6da846177fb3 (diff)
downloadperlweeklychallenge-club-82131cfdef6a35e90af50b56e6f0f80164a9481d.tar.gz
perlweeklychallenge-club-82131cfdef6a35e90af50b56e6f0f80164a9481d.tar.bz2
perlweeklychallenge-club-82131cfdef6a35e90af50b56e6f0f80164a9481d.zip
- Added solutions by Wanderdoc.
-rw-r--r--challenge-044/wanderdoc/perl/ch-1.pl40
-rw-r--r--challenge-044/wanderdoc/perl/ch-2.pl43
-rw-r--r--stats/pwc-current.json87
-rw-r--r--stats/pwc-language-breakdown-summary.json64
-rw-r--r--stats/pwc-language-breakdown.json636
-rw-r--r--stats/pwc-leaders.json376
-rw-r--r--stats/pwc-summary-1-30.json122
-rw-r--r--stats/pwc-summary-121-150.json98
-rw-r--r--stats/pwc-summary-31-60.json102
-rw-r--r--stats/pwc-summary-61-90.json44
-rw-r--r--stats/pwc-summary-91-120.json56
-rw-r--r--stats/pwc-summary.json60
12 files changed, 913 insertions, 815 deletions
diff --git a/challenge-044/wanderdoc/perl/ch-1.pl b/challenge-044/wanderdoc/perl/ch-1.pl
new file mode 100644
index 0000000000..b80ded34a3
--- /dev/null
+++ b/challenge-044/wanderdoc/perl/ch-1.pl
@@ -0,0 +1,40 @@
+#!perl
+
+use strict;
+use warnings FATAL => qw(all);
+
+=prompt
+
+You are given a string "123456789". Write a script that would insert "+" or "-" in between digits so that when you evaluate, the result should be 100.
+
+=cut
+
+use Algorithm::Combinatorics qw(variations_with_repetition);
+use List::MoreUtils qw(zip);
+use Scalar::Util qw(looks_like_number);
+
+my @operators = ('+', '-', '');
+my $string = "123456789";
+my @array = split(//,$string);
+
+my $iter = variations_with_repetition( [@operators], $#array);
+my %uniq;
+
+while ( my $c = $iter->next )
+{
+ my @z = zip(@array, @$c);
+ pop @z; # undef.
+ my $formula = join('',@z);
+ $uniq{ $formula }++;
+ next if $uniq{ $formula } > 1;
+
+ my $sum = eval $formula;
+ unless ( looks_like_number($sum))
+ {
+ print $@, $/;
+ die "Sum is ${sum}: Something went wrong.";
+ }
+
+ next unless 100 == $sum;
+ print "${formula} = ${sum}$/";
+}
diff --git a/challenge-044/wanderdoc/perl/ch-2.pl b/challenge-044/wanderdoc/perl/ch-2.pl
new file mode 100644
index 0000000000..b89776423b
--- /dev/null
+++ b/challenge-044/wanderdoc/perl/ch-2.pl
@@ -0,0 +1,43 @@
+#!perl
+
+use strict;
+use warnings FATAL => qw(all);
+
+=promt
+
+You have only $1 left at the start of the week. You have been given an opportunity to make it $200. The rule is simple with every move you can either double what you have or add another $1. Write a script to help you get $200 with the smallest number of moves.
+
+=cut
+
+=theory
+
+Doubling the value makes it faster than adding 1. The decision: dividing 200 back until an odd number comes, then substract 1.
+
+=cut
+
+my $GOAL = 200;
+my $START = $GOAL;
+
+my @steps;
+
+while ( $START >= 1 )
+{
+ push @steps, [$START, $GOAL];
+ if ( $START % 2 == 0 )
+ {
+ $START /= 2;
+ }
+ else
+ {
+ $START -= 1;
+ }
+}
+
+print join("\t", qw(Step Start Goal)), $/;
+
+my $counter = 0;
+for my $step ( reverse @steps )
+{
+ print join("\t", $counter, @$step[0,1] ), $/;
+ $counter++;
+}
diff --git a/stats/pwc-current.json b/stats/pwc-current.json
index 50de20317b..a2365aa5af 100644
--- a/stats/pwc-current.json
+++ b/stats/pwc-current.json
@@ -1,28 +1,6 @@
{
- "legend" : {
- "enabled" : 0
- },
- "plotOptions" : {
- "series" : {
- "dataLabels" : {
- "format" : "{point.y}",
- "enabled" : 1
- },
- "borderWidth" : 0
- }
- },
- "chart" : {
- "type" : "column"
- },
- "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"
- }
+ "subtitle" : {
+ "text" : "[Champions: 4] Last updated at 2020-01-20 18:06:25 GMT"
},
"series" : [
{
@@ -35,58 +13,95 @@
"name" : "E. Choroba"
},
{
- "y" : 2,
+ "name" : "Luca Ferrari",
"drilldown" : "Luca Ferrari",
- "name" : "Luca Ferrari"
+ "y" : 2
},
{
"name" : "Simon Proctor",
"drilldown" : "Simon Proctor",
"y" : 2
+ },
+ {
+ "drilldown" : "Wanderdoc",
+ "y" : 2,
+ "name" : "Wanderdoc"
}
]
}
],
- "title" : {
- "text" : "Perl Weekly Challenge - 044"
- },
- "subtitle" : {
- "text" : "[Champions: 3] Last updated at 2020-01-20 17:59:13 GMT"
+ "yAxis" : {
+ "title" : {
+ "text" : "Total Solutions"
+ }
},
"drilldown" : {
"series" : [
{
+ "id" : "E. Choroba",
"data" : [
[
"Perl",
2
]
],
- "name" : "E. Choroba",
- "id" : "E. Choroba"
+ "name" : "E. Choroba"
},
{
"name" : "Luca Ferrari",
+ "id" : "Luca Ferrari",
"data" : [
[
"Raku",
2
]
- ],
- "id" : "Luca Ferrari"
+ ]
},
{
- "id" : "Simon Proctor",
"data" : [
[
"Raku",
2
]
],
+ "id" : "Simon Proctor",
"name" : "Simon Proctor"
+ },
+ {
+ "id" : "Wanderdoc",
+ "data" : [
+ [
+ "Perl",
+ 2
+ ]
+ ],
+ "name" : "Wanderdoc"
}
]
},
+ "plotOptions" : {
+ "series" : {
+ "borderWidth" : 0,
+ "dataLabels" : {
+ "format" : "{point.y}",
+ "enabled" : 1
+ }
+ }
+ },
+ "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'>{series.name}</span><br/>",
+ "followPointer" : 1
+ },
+ "title" : {
+ "text" : "Perl Weekly Challenge - 044"
+ },
+ "legend" : {
+ "enabled" : 0
+ },
"xAxis" : {
"type" : "category"
}
diff --git a/stats/pwc-language-breakdown-summary.json b/stats/pwc-language-breakdown-summary.json
index 5bf4a9e7c1..3a92eafbda 100644
--- a/stats/pwc-language-breakdown-summary.json
+++ b/stats/pwc-language-breakdown-summary.json
@@ -1,21 +1,28 @@
{
- "legend" : {
- "enabled" : "false"
+ "tooltip" : {
+ "pointFormat" : "<b>{point.y:.0f}</b>"
},
"chart" : {
"type" : "column"
},
- "tooltip" : {
- "pointFormat" : "<b>{point.y:.0f}</b>"
- },
- "yAxis" : {
- "min" : 0,
- "title" : {
- "text" : null
- }
+ "subtitle" : {
+ "text" : "Last updated at 2020-01-20 18:06:25 GMT"
},
"series" : [
{
+ "name" : "Contributions",
+ "dataLabels" : {
+ "style" : {
+ "fontFamily" : "Verdana, sans-serif",
+ "fontSize" : "13px"
+ },
+ "y" : 10,
+ "format" : "{point.y:.0f}",
+ "rotation" : -90,
+ "align" : "right",
+ "enabled" : "true",
+ "color" : "#FFFFFF"
+ },
"data" : [
[
"Blog",
@@ -23,41 +30,34 @@
],
[
"Perl",
- 1770
+ 1772
],
[
"Raku",
1074
]
- ],
- "name" : "Contributions",
- "dataLabels" : {
- "color" : "#FFFFFF",
- "enabled" : "true",
- "align" : "right",
- "y" : 10,
- "style" : {
- "fontFamily" : "Verdana, sans-serif",
- "fontSize" : "13px"
- },
- "format" : "{point.y:.0f}",
- "rotation" : -90
- }
+ ]
}
],
- "title" : {
- "text" : "Perl Weekly Challenge Contributions [2019 - 2020]"
- },
- "subtitle" : {
- "text" : "Last updated at 2020-01-20 17:59:13 GMT"
+ "yAxis" : {
+ "min" : 0,
+ "title" : {
+ "text" : null
+ }
},
"xAxis" : {
- "type" : "category",
"labels" : {
"style" : {
"fontSize" : "13px",
"fontFamily" : "Verdana, sans-serif"
}
- }
+ },
+ "type" : "category"
+ },
+ "legend" : {
+ "enabled" : "false"
+ },
+ "title" : {
+ "text" : "Perl Weekly Challenge Contributions [2019 - 2020]"
}
}
diff --git a/stats/pwc-language-breakdown.json b/stats/pwc-language-breakdown.json
index 94362f41e9..8bf2c07e0c 100644
--- a/stats/pwc-language-breakdown.json
+++ b/stats/pwc-language-breakdown.json
@@ -1,4 +1,249 @@
{
+ "title" : {
+ "text" : "Perl Weekly Challenge Language"
+ },
+ "xAxis" : {
+ "type" : "category"
+ },
+ "legend" : {
+ "enabled" : "false"
+ },
+ "subtitle" : {
+ "text" : "Click the columns to drilldown the language breakdown. Last updated at 2020-01-20 18:06:25 GMT"
+ },
+ "series" : [
+ {
+ "colorByPoint" : "true",
+ "data" : [
+ {
+ "drilldown" : "001",
+ "y" : 140,
+ "name" : "#001"
+ },
+ {
+ "y" : 109,
+ "drilldown" : "002",
+ "name" : "#002"
+ },
+ {
+ "name" : "#003",
+ "y" : 71,
+ "drilldown" : "003"
+ },
+ {
+ "name" : "#004",
+ "drilldown" : "004",
+ "y" : 91
+ },
+ {
+ "name" : "#005",
+ "drilldown" : "005",
+ "y" : 71
+ },
+ {
+ "drilldown" : "006",
+ "y" : 48,
+ "name" : "#006"
+ },
+ {
+ "name" : "#007",
+ "y" : 56,
+ "drilldown" : "007"
+ },
+ {
+ "name" : "#008",
+ "drilldown" : "008",
+ "y" : 70
+ },
+ {
+ "drilldown" : "009",
+ "y" : 68,
+ "name" : "#009"
+ },
+ {
+ "drilldown" : "010",
+ "y" : 60,
+ "name" : "#010"
+ },
+ {
+ "name" : "#011",
+ "drilldown" : "011",
+ "y" : 79
+ },
+ {
+ "name" : "#012",
+ "y" : 83,
+ "drilldown" : "012"
+ },
+ {
+ "name" : "#013",
+ "y" : 76,
+ "drilldown" : "013"
+ },
+ {
+ "y" : 96,
+ "drilldown" : "014",
+ "name" : "#014"
+ },
+ {
+ "y" : 93,
+ "drilldown" : "015",
+ "name" : "#015"
+ },
+ {
+ "name" : "#016",
+ "y" : 66,
+ "drilldown" : "016"
+ },
+ {
+ "name" : "#017",
+ "y" : 79,
+ "drilldown" : "017"
+ },
+ {
+ "drilldown" : "018",
+ "y" : 76,
+ "name" : "#018"
+ },
+ {
+ "y" : 95,
+ "drilldown" : "019",
+ "name" : "#019"
+ },
+ {
+ "drilldown" : "020",
+ "y" : 95,
+ "name" : "#020"
+ },
+ {
+ "y" : 67,
+ "drilldown" : "021",
+ "name" : "#021"
+ },
+ {
+ "name" : "#022",
+ "y" : 63,
+ "drilldown" : "022"
+ },
+ {
+ "y" : 91,
+ "drilldown" : "023",
+ "name" : "#023"
+ },
+ {
+ "y" : 70,
+ "drilldown" : "024",
+ "name" : "#024"
+ },
+ {
+ "y" : 55,
+ "drilldown" : "025",
+ "name" : "#025"
+ },
+ {
+ "name" : "#026",
+ "drilldown" : "026",
+ "y" : 70
+ },
+ {
+ "y" : 58,
+ "drilldown" : "027",
+ "name" : "#027"
+ },
+ {
+ "name" : "#028",
+ "y" : 78,
+ "drilldown" : "028"
+ },
+ {
+ "drilldown" : "029",
+ "y" : 77,
+ "name" : "#029"
+ },
+ {
+ "name" : "#030",
+ "y" : 115,
+ "drilldown" : "030"
+ },
+ {
+ "name" : "#031",
+ "drilldown" : "031",
+ "y" : 87
+ },
+ {
+ "name" : "#032",
+ "y" : 92,
+ "drilldown" : "032"
+ },
+ {
+ "name" : "#033",
+ "y" : 108,
+ "drilldown" : "033"
+ },
+ {
+ "y" : 60,
+ "drilldown" : "034",
+ "name" : "#034"
+ },
+ {
+ "name" : "#035",
+ "drilldown" : "035",
+ "y" : 60
+ },
+ {
+ "drilldown" : "036",
+ "y" : 61,
+ "name" : "#036"
+ },
+ {
+ "drilldown" : "037",
+ "y" : 63,
+ "name" : "#037"
+ },
+ {
+ "drilldown" : "038",
+ "y" : 60,
+ "name" : "#038"
+ },
+ {
+ "drilldown" : "039",
+ "y" : 60,
+ "name" : "#039"
+ },
+ {
+ "drilldown" : "040",
+ "y" : 66,
+ "name" : "#040"
+ },
+ {
+ "name" : "#041",
+ "y" : 68,
+ "drilldown" : "041"
+ },
+ {
+ "name" : "#042",
+ "drilldown" : "042",
+ "y" : 86
+ },
+ {
+ "y" : 64,
+ "drilldown" : "043",
+ "name" : "#043"
+ },
+ {
+ "name" : "#044",
+ "drilldown" : "044",
+ "y" : 8
+ }
+ ],
+ "name" : "Perl Weekly Challenge Languages"
+ }
+ ],
+ "yAxis" : {
+ "title" : {
+ "text" : "Total Solutions"
+ }
+ },
"drilldown" : {
"series" : [
{
@@ -20,7 +265,6 @@
"id" : "001"
},
{
- "id" : "002",
"data" : [
[
"Perl",
@@ -35,10 +279,11 @@
10
]
],
+ "id" : "002",
"name" : "002"
},
{
- "id" : "003",
+ "name" : "003",
"data" : [
[
"Perl",
@@ -53,10 +298,9 @@
9
]
],
- "name" : "003"
+ "id" : "003"
},
{
- "id" : "004",
"data" : [
[
"Perl",
@@ -71,6 +315,7 @@
10
]
],
+ "id" : "004",
"name" : "004"
},
{
@@ -93,7 +338,6 @@
},
{
"id" : "006",
- "name" : "006",
"data" : [
[
"Perl",
@@ -107,9 +351,11 @@
"Blog",
7
]
- ]
+ ],
+ "name" : "006"
},
{
+ "id" : "007",
"data" : [
[
"Perl",
@@ -124,12 +370,11 @@
10
]
],
- "name" : "007",
- "id" : "007"
+ "name" : "007"
},
{
- "id" : "008",
"name" : "008",
+ "id" : "008",
"data" : [
[
"Perl",
@@ -164,6 +409,8 @@
"id" : "009"
},
{
+ "name" : "010",
+ "id" : "010",
"data" : [
[
"Perl",
@@ -177,11 +424,10 @@
"Blog",
11
]
- ],
- "name" : "010",
- "id" : "010"
+ ]
},
{
+ "name" : "011",
"data" : [
[
"Perl",
@@ -196,7 +442,6 @@
10
]
],
- "name" : "011",
"id" : "011"
},
{
@@ -218,6 +463,7 @@
"name" : "012"
},
{
+ "name" : "013",
"data" : [
[
"Perl",
@@ -232,11 +478,9 @@
13
]
],
- "name" : "013",
"id" : "013"
},
{
- "id" : "014",
"data" : [
[
"Perl",
@@ -251,10 +495,11 @@
15
]
],
+ "id" : "014",
"name" : "014"
},
{
- "name" : "015",
+ "id" : "015",
"data" : [
[
"Perl",
@@ -269,11 +514,9 @@
15
]
],
- "id" : "015"
+ "name" : "015"
},
{
- "id" : "016",
- "name" : "016",
"data" : [
[
"Perl",
@@ -287,10 +530,13 @@
"Blog",
12
]
- ]
+ ],
+ "id" : "016",
+ "name" : "016"
},
{
"name" : "017",
+ "id" : "017",
"data" : [
[
"Perl",
@@ -304,8 +550,7 @@
"Blog",
12
]
- ],
- "id" : "017"
+ ]
},
{
"id" : "018",
@@ -326,7 +571,6 @@
"name" : "018"
},
{
- "name" : "019",
"data" : [
[
"Perl",
@@ -341,11 +585,12 @@
13
]
],
- "id" : "019"
+ "id" : "019",
+ "name" : "019"
},
{
- "id" : "020",
"name" : "020",
+ "id" : "020",
"data" : [
[
"Perl",
@@ -362,6 +607,8 @@
]
},
{
+ "name" : "021",
+ "id" : "021",
"data" : [
[
"Perl",
@@ -375,13 +622,11 @@
"Blog",
10
]
- ],
- "name" : "021",
- "id" : "021"
+ ]
},
{
- "id" : "022",
"name" : "022",
+ "id" : "022",
"data" : [
[
"Perl",
@@ -398,7 +643,6 @@
]
},
{
- "name" : "023",
"data" : [
[
"Perl",
@@ -413,7 +657,8 @@
12
]
],
- "id" : "023"
+ "id" : "023",
+ "name" : "023"
},
{
"name" : "024",
@@ -434,7 +679,6 @@
"id" : "024"
},
{
- "id" : "025",
"data" : [
[
"Perl",
@@ -449,6 +693,7 @@
12
]
],
+ "id" : "025",
"name" : "025"
},
{
@@ -471,7 +716,6 @@
},
{
"id" : "027",
- "name" : "027",
"data" : [
[
"Perl",
@@ -485,11 +729,10 @@
"Blog",
9
]
- ]
+ ],
+ "name" : "027"
},
{
- "id" : "028",
- "name" : "028",
"data" : [
[
"Perl",
@@ -503,10 +746,12 @@
"Blog",
9
]
- ]
+ ],
+ "id" : "028",
+ "name" : "028"
},
{
- "name" : "029",
+ "id" : "029",
"data" : [
[
"Perl",
@@ -521,7 +766,7 @@
12
]
],
- "id" : "029"
+ "name" : "029"
},
{
"name" : "030",
@@ -556,11 +801,10 @@
9
]
],
- "name" : "031",
- "id" : "031"
+ "id" : "031",
+ "name" : "031"
},
{
- "name" : "032",
"data" : [
[
"Perl",
@@ -575,9 +819,12 @@
10
]
],
- "id" : "032"
+ "id" : "032",
+ "name" : "032"
},
{
+ "name" : "033",
+ "id" : "033",
"data" : [
[
"Perl",
@@ -591,12 +838,11 @@
"Blog",
10
]
- ],
- "name" : "033",
- "id" : "033"
+ ]
},
{
"name" : "034",
+ "id" : "034",
"data" : [
[
"Perl",
@@ -610,8 +856,7 @@
"Blog",
11
]
- ],
- "id" : "034"
+ ]
},
{
"name" : "035",
@@ -632,8 +877,8 @@
"id" : "035"
},
{
- "id" : "036",
"name" : "036",
+ "id" : "036",
"data" : [
[
"Perl",
@@ -650,8 +895,6 @@
]
},
{
- "id" : "037",
- "name" : "037",
"data" : [
[
"Perl",
@@ -665,11 +908,11 @@
"Blog",
9
]
- ]
+ ],
+ "id" : "037",
+ "name" : "037"
},
{
- "id" : "038",
- "name" : "038",
"data" : [
[
"Perl",
@@ -683,9 +926,12 @@
"Blog",
11
]
- ]
+ ],
+ "id" : "038",
+ "name" : "038"
},
{
+ "name" : "039",
"data" : [
[
"Perl",
@@ -700,11 +946,9 @@
12
]
],
- "name" : "039",
"id" : "039"
},
{
- "id" : "040",
"data" : [
[
"Perl",
@@ -719,11 +963,12 @@
9
]
],
+ "id" : "040",
"name" : "040"
},
{
- "id" : "041",
"name" : "041",
+ "id" : "041",
"data" : [
[
"Perl",
@@ -740,6 +985,7 @@
]
},
{
+ "name" : "042",
"id" : "042",
"data" : [
[
@@ -754,10 +1000,11 @@
"Blog",
9
]
- ],
- "name" : "042"
+ ]
},
{
+ "name" : "043",
+ "id" : "043",
"data" : [
[
"Perl",
@@ -771,16 +1018,13 @@
"Blog",
9
]
- ],
- "name" : "043",
- "id" : "043"
+ ]
},
{
- "name" : "044",
"data" : [
[
"Perl",
- 2
+ 4
],
[
"Raku",
@@ -791,270 +1035,26 @@
0
]
],
- "id" : "044"
+ "id" : "044",
+ "name" : "044"
}
]
},
- "subtitle" : {
- "text" : "Click the columns to drilldown the language breakdown. Last updated at 2020-01-20 17:59:13 GMT"
- },
- "series" : [
- {
- "colorByPoint" : "true",
- "data" : [
- {
- "y" : 140,
- "drilldown" : "001",
- "name" : "#001"
- },
- {
- "name" : "#002",
- "y" : 109,
- "drilldown" : "002"
- },
- {
- "y" : 71,
- "drilldown" : "003",
- "name" : "#003"
- },
- {
- "drilldown" : "004",
- "y" : 91,
- "name" : "#004"
- },
- {
- "name" : "#005",
- "drilldown" : "005",
- "y" : 71
- },
- {
- "name" : "#006",
- "drilldown" : "006",
- "y" : 48
- },
- {
- "name" : "#007",
- "y" : 56,
- "drilldown" : "007"
- },
- {
- "drilldown" : "008",
- "y" : 70,
- "name" : "#008"
- },
- {
- "name" : "#009",
- "y" : 68,
- "drilldown" : "009"
- },
- {
- "name" : "#010",
- "drilldown" : "010",
- "y" : 60
- },
- {
- "drilldown" : "011",
- "y" : 79,
- "name" : "#011"
- },
- {
- "y" : 83,
- "drilldown" : "012",
- "name" : "#012"
- },
- {
- "y" : 76,
- "drilldown" : "013",
- "name" : "#013"
- },
- {
- "name" : "#014",
- "y" : 96,
- "drilldown" : "014"
- },
- {
- "name" : "#015",
- "y" : 93,
- "drilldown" : "015"
- },
- {
- "name" : "#016",
- "drilldown" : "016",
- "y" : 66
- },
- {
- "name" : "#017",
- "drilldown" : "017",
- "y" :