aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMohammad S Anwar <mohammad.anwar@yahoo.com>2020-01-13 13:33:55 +0000
committerMohammad S Anwar <mohammad.anwar@yahoo.com>2020-01-13 13:33:55 +0000
commit90d543703e429943ca739b6470a9d4092205928d (patch)
treebd2cc6894f4da285bc7c938b2a986b47f1f4c010
parenta19bb7a7248f135dbf3ee2b588c81136d5a3901d (diff)
downloadperlweeklychallenge-club-90d543703e429943ca739b6470a9d4092205928d.tar.gz
perlweeklychallenge-club-90d543703e429943ca739b6470a9d4092205928d.tar.bz2
perlweeklychallenge-club-90d543703e429943ca739b6470a9d4092205928d.zip
- Added solutions by Javier Luque.
-rw-r--r--challenge-043/javier-luque/blog.txt1
-rw-r--r--challenge-043/javier-luque/perl/ch-1.pl28
-rw-r--r--challenge-043/javier-luque/perl/ch-2.pl45
-rw-r--r--challenge-043/javier-luque/raku/ch-1.p628
-rw-r--r--challenge-043/javier-luque/raku/ch-2.p643
-rw-r--r--stats/pwc-current.json111
-rw-r--r--stats/pwc-language-breakdown-summary.json56
-rw-r--r--stats/pwc-language-breakdown.json264
-rw-r--r--stats/pwc-leaders.json754
-rw-r--r--stats/pwc-summary-1-30.json36
-rw-r--r--stats/pwc-summary-121-150.json88
-rw-r--r--stats/pwc-summary-31-60.json90
-rw-r--r--stats/pwc-summary-61-90.json90
-rw-r--r--stats/pwc-summary-91-120.json26
-rw-r--r--stats/pwc-summary.json34
15 files changed, 931 insertions, 763 deletions
diff --git a/challenge-043/javier-luque/blog.txt b/challenge-043/javier-luque/blog.txt
new file mode 100644
index 0000000000..d3ad133275
--- /dev/null
+++ b/challenge-043/javier-luque/blog.txt
@@ -0,0 +1 @@
+https://perlchallenges.wordpress.com/2020/01/13/perl-weekly-challenge-043/
diff --git a/challenge-043/javier-luque/perl/ch-1.pl b/challenge-043/javier-luque/perl/ch-1.pl
new file mode 100644
index 0000000000..b7e90ef3db
--- /dev/null
+++ b/challenge-043/javier-luque/perl/ch-1.pl
@@ -0,0 +1,28 @@
+#!/usr/bin/perl
+# Test: ./ch-1.pl
+use strict;
+use warnings;
+use feature qw /say/;
+
+my @numbers = (1, 2, 3, 4, 6);
+my %rings = (
+ blue => 8,
+ yellow => 7,
+ green => 5,
+ red => 9,
+ black => 0
+);
+
+for my $ring ( keys %rings ) {
+ my $total = $rings{$ring};
+ my @additional_numbers;
+ for my $i (sort { $b <=> $a } @numbers) {
+ if ($total + $i <= 11) {
+ $total += $i;
+ push @additional_numbers, $i;
+ }
+ }
+
+ say 'Color: ' . $ring . ' - ' .
+ join ', ', @additional_numbers;
+}
diff --git a/challenge-043/javier-luque/perl/ch-2.pl b/challenge-043/javier-luque/perl/ch-2.pl
new file mode 100644
index 0000000000..67dba9ffd6
--- /dev/null
+++ b/challenge-043/javier-luque/perl/ch-2.pl
@@ -0,0 +1,45 @@
+#!/usr/bin/perl
+# test: ./ch-2.pl
+use strict;
+use warnings;
+use feature qw /say/;
+use bignum;
+
+our @NUMS = (0..9,'A' .. 'Z');
+
+for my $i (1..36) {
+ say $i . ': ' .
+ self_descriptive_x($i) . ' - ' .
+ self_descriptive_10($i);
+}
+
+sub self_descriptive_x {
+ my $b = shift;
+
+ return 'no solution' if
+ ( $b == 1 || $b == 2 ||
+ $b == 3 || $b == 6);
+
+ return 1210 if ($b == 4);
+ return 21200 if ($b == 5);
+
+ return
+ $NUMS[($b - 4)] . '2' . 1 . 0 x ($b - 7) . '1000';
+}
+
+sub self_descriptive_10 {
+ my $b = shift;
+
+ return 'no solution' if
+ ( $b == 1 || $b == 2 ||
+ $b == 3 || $b == 6);
+
+ return 100 if ($b == 4);
+ return 1425 if ($b == 5);
+
+ return
+ ($b - 4) * $b ** ($b - 1) +
+ 2 * $b ** ($b - 2) +
+ $b ** ($b - 3) +
+ $b ** 3;
+}
diff --git a/challenge-043/javier-luque/raku/ch-1.p6 b/challenge-043/javier-luque/raku/ch-1.p6
new file mode 100644
index 0000000000..c4e3c27fb1
--- /dev/null
+++ b/challenge-043/javier-luque/raku/ch-1.p6
@@ -0,0 +1,28 @@
+# Test: perl6 ch-1.p6
+use v6.d;
+
+my @numbers = (1, 2, 3, 4, 6);
+my %rings = (
+ blue => 8,
+ yellow => 7,
+ green => 5,
+ red => 9,
+ black => 0
+);
+
+sub MAIN() {
+ for ( %rings.keys ) -> $ring {
+ my $total = %rings.{$ring};
+ my @additional_numbers;
+
+ for ( @numbers.sort.reverse ) -> $i {
+ if ($total + $i <= 11) {
+ $total += $i;
+ push @additional_numbers, $i;
+ }
+ }
+
+ say 'Color: ' ~ $ring ~ ' - ' ~
+ @additional_numbers.join(', ');
+ }
+}
diff --git a/challenge-043/javier-luque/raku/ch-2.p6 b/challenge-043/javier-luque/raku/ch-2.p6
new file mode 100644
index 0000000000..d77be4a5c6
--- /dev/null
+++ b/challenge-043/javier-luque/raku/ch-2.p6
@@ -0,0 +1,43 @@
+# Test: perl6 ./ch2.p6
+use v6.d;
+
+# Don't know how to do this in Raku :(
+our @NUMS =
+<0 1 2 3 4 5 6 7 8 9 A B C D E F G H
+ I J K L M N O P Q R S T U V W X Y Z>;
+
+sub MAIN () {
+ say @NUMS;
+ for (1..36) -> $i {
+ say $i ~ ': ' ~
+ self-descriptive-x($i) ~ ' - ' ~
+ self-descriptive($i);
+ }
+}
+
+sub self-descriptive-x(Int $b) {
+ return 'no solution' if
+ ( $b == 1 || $b == 2 ||
+ $b == 3 || $b == 6);
+
+ return 1210 if ($b == 4);
+ return 21200 if ($b == 5);
+
+ return
+ @NUMS[($b - 4)] ~ '2' ~ 1 ~ 0 x ($b - 7) ~ '1000';
+}
+
+sub self-descriptive(Int $b) {
+ return 'no solution' if
+ ( $b == 1 || $b == 2 ||
+ $b == 3 || $b == 6);
+
+ return 100 if ($b == 4);
+ return 1425 if ($b == 5);
+
+ return
+ ($b - 4) * $b ** ($b - 1) +
+ 2 * $b ** ($b - 2) +
+ $b ** ($b - 3) +
+ $b ** 3;
+}
diff --git a/stats/pwc-current.json b/stats/pwc-current.json
index 7236c00cd0..87b0b6679a 100644
--- a/stats/pwc-current.json
+++ b/stats/pwc-current.json
@@ -1,33 +1,19 @@
{
- "series" : [
- {
- "colorByPoint" : 1,
- "name" : "Perl Weekly Challenge - 043",
- "data" : [
- {
- "drilldown" : "Roger Bell West",
- "y" : 4,
- "name" : "Roger Bell West"
- },
- {
- "drilldown" : "Simon Proctor",
- "y" : 2,
- "name" : "Simon Proctor"
- }
- ]
- }
- ],
- "subtitle" : {
- "text" : "[Champions: 2] Last updated at 2020-01-13 13:26:31 GMT"
+ "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
},
- "yAxis" : {
- "title" : {
- "text" : "Total Solutions"
- }
+ "title" : {
+ "text" : "Perl Weekly Challenge - 043"
+ },
+ "xAxis" : {
+ "type" : "category"
},
"drilldown" : {
"series" : [
{
+ "id" : "Javier Luque",
"data" : [
[
"Perl",
@@ -36,47 +22,84 @@
[
"Raku",
2
+ ],
+ [
+ "Blog",
+ 1
]
],
- "id" : "Roger Bell West",
- "name" : "Roger Bell West"
+ "name" : "Javier Luque"
},
{
- "name" : "Simon Proctor",
- "id" : "Simon Proctor",
+ "name" : "Roger Bell West",
"data" : [
[
+ "Perl",
+ 2
+ ],
+ [
"Raku",
2
]
- ]
+ ],
+ "id" : "Roger Bell West"
+ },
+ {
+ "data" : [
+ [
+ "Raku",
+ 2
+ ]
+ ],
+ "name" : "Simon Proctor",
+ "id" : "Simon Proctor"
}
]
},
+ "series" : [
+ {
+ "colorByPoint" : 1,
+ "data" : [
+ {
+ "name" : "Javier Luque",
+ "y" : 5,
+ "drilldown" : "Javier Luque"
+ },
+ {
+ "drilldown" : "Roger Bell West",
+ "y" : 4,
+ "name" : "Roger Bell West"
+ },
+ {
+ "name" : "Simon Proctor",
+ "y" : 2,
+ "drilldown" : "Simon Proctor"
+ }
+ ],
+ "name" : "Perl Weekly Challenge - 043"
+ }
+ ],
"legend" : {
"enabled" : 0
},
+ "yAxis" : {
+ "title" : {
+ "text" : "Total Solutions"
+ }
+ },
+ "subtitle" : {
+ "text" : "[Champions: 3] Last updated at 2020-01-13 13:33:30 GMT"
+ },
"plotOptions" : {
"series" : {
+ "borderWidth" : 0,
"dataLabels" : {
- "enabled" : 1,
- "format" : "{point.y}"
- },
- "borderWidth" : 0
+ "format" : "{point.y}",
+ "enabled" : 1
+ }
}
},
"chart" : {
"type" : "column"
- },
- "title" : {
- "text" : "Perl Weekly Challenge - 043"
- },
- "xAxis" : {
- "type" : "category"
- },
- "tooltip" : {
- "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/>",
- "followPointer" : 1
}
}
diff --git a/stats/pwc-language-breakdown-summary.json b/stats/pwc-language-breakdown-summary.json
index ca453e93ad..9bd0868cee 100644
--- a/stats/pwc-language-breakdown-summary.json
+++ b/stats/pwc-language-breakdown-summary.json
@@ -1,63 +1,63 @@
{
- "title" : {
- "text" : "Perl Weekly Challenge Contributions [2019 - 2020]"
- },
- "chart" : {
- "type" : "column"
- },
- "legend" : {
- "enabled" : "false"
- },
"tooltip" : {
"pointFormat" : "<b>{point.y:.0f}</b>"
},
"xAxis" : {
+ "type" : "category",
"labels" : {
"style" : {
"fontFamily" : "Verdana, sans-serif",
"fontSize" : "13px"
}
+ }
+ },
+ "title" : {
+ "text" : "Perl Weekly Challenge Contributions [2019 - 2020]"
+ },
+ "chart" : {
+ "type" : "column"
+ },
+ "subtitle" : {
+ "text" : "Last updated at 2020-01-13 13:33:30 GMT"
+ },
+ "yAxis" : {
+ "title" : {
+ "text" : null
},
- "type" : "category"
+ "min" : 0
+ },
+ "legend" : {
+ "enabled" : "false"
},
"series" : [
{
"dataLabels" : {
+ "format" : "{point.y:.0f}",
+ "align" : "right",
+ "enabled" : "true",
+ "rotation" : -90,
"color" : "#FFFFFF",
- "y" : 10,
"style" : {
"fontFamily" : "Verdana, sans-serif",
"fontSize" : "13px"
},
- "align" : "right",
- "format" : "{point.y:.0f}",
- "rotation" : -90,
- "enabled" : "true"
+ "y" : 10
},
"name" : "Contributions",
"data" : [
[
"Blog",
- 454
+ 455
],
[
"Perl",
- 1735
+ 1737
],
[
"Raku",
- 1052
+ 1054
]
]
}
- ],
- "yAxis" : {
- "min" : 0,
- "title" : {
- "text" : null
- }
- },
- "subtitle" : {
- "text" : "Last updated at 2020-01-13 13:26:31 GMT"
- }
+ ]
}
diff --git a/stats/pwc-language-breakdown.json b/stats/pwc-language-breakdown.json
index fce83dcef0..9c733afda1 100644
--- a/stats/pwc-language-breakdown.json
+++ b/stats/pwc-language-breakdown.json
@@ -1,14 +1,11 @@
{
"tooltip" : {
"headerFormat" : "<span style=\"font-size:11px\"></span>",
- "followPointer" : "true",
- "pointFormat" : "<span style=\"color:{point.color}\">Challenge {point.name}</span>: <b>{point.y:f}</b><br/>"
+ "pointFormat" : "<span style=\"color:{point.color}\">Challenge {point.name}</span>: <b>{point.y:f}</b><br/>",
+ "followPointer" : "true"
},
- "xAxis" : {
- "type" : "category"
- },
- "title" : {
- "text" : "Perl Weekly Challenge Language"
+ "subtitle" : {
+ "text" : "Click the columns to drilldown the language breakdown. Last updated at 2020-01-13 13:33:30 GMT"
},
"plotOptions" : {
"series" : {
@@ -25,9 +22,15 @@
"legend" : {
"enabled" : "false"
},
+ "yAxis" : {
+ "title" : {
+ "text" : "Total Solutions"
+ }
+ },
"drilldown" : {
"series" : [
{
+ "id" : "001",
"data" : [
[
"Perl",
@@ -42,11 +45,11 @@
11
]
],
- "id" : "001",
"name" : "001"
},
{
"id" : "002",
+ "name" : "002",
"data" : [
[
"Perl",
@@ -60,11 +63,10 @@
"Blog",
10
]
- ],
- "name" : "002"
+ ]
},
{
- "name" : "003",
+ "id" : "003",
"data" : [
[
"Perl",
@@ -79,7 +81,7 @@
9
]
],
- "id" : "003"
+ "name" : "003"
},
{
"data" : [
@@ -96,10 +98,11 @@
10
]
],
- "id" : "004",
- "name" : "004"
+ "name" : "004",
+ "id" : "004"
},
{
+ "id" : "005",
"data" : [
[
"Perl",
@@ -114,11 +117,10 @@
12
]
],
- "id" : "005",
"name" : "005"
},
{
- "name" : "006",
+ "id" : "006",
"data" : [
[
"Perl",
@@ -133,11 +135,9 @@
7
]
],
- "id" : "006"
+ "name" : "006"
},
{
- "name" : "007",
- "id" : "007",
"data" : [
[
"Perl",
@@ -151,9 +151,12 @@
"Blog",
10
]
- ]
+ ],
+ "name" : "007",
+ "id" : "007"
},
{
+ "name" : "008",
"data" : [
[
"Perl",
@@ -168,12 +171,9 @@
12
]
],
- "id" : "008",
- "name" : "008"
+ "id" : "008"
},
{
- "name" : "009",
- "id" : "009",
"data" : [
[
"Perl",
@@ -187,7 +187,9 @@
"Blog",
13
]
- ]
+ ],
+ "name" : "009",
+ "id" : "009"
},
{
"data" : [
@@ -204,11 +206,10 @@
11
]
],
- "id" : "010",
- "name" : "010"
+ "name" : "010",
+ "id" : "010"
},
{
- "id" : "011",
"data" : [
[
"Perl",
@@ -223,10 +224,11 @@
10
]
],
- "name" : "011"
+ "name" : "011",
+ "id" : "011"
},
{
- "name" : "012",
+ "id" : "012",
"data" : [
[
"Perl",
@@ -241,10 +243,9 @@
11
]
],
- "id" : "012"
+ "name" : "012"
},
{
- "name" : "013",
"data" : [
[
"Perl",
@@ -259,11 +260,12 @@
13
]
],
+ "name" : "013",
"id" : "013"
},
{
- "name" : "014",
"id" : "014",
+ "name" : "014",
"data" : [
[
"Perl",
@@ -281,7 +283,6 @@
},
{
"name" : "015",
- "id" : "015",
"data" : [
[
"Perl",
@@ -295,7 +296,8 @@
"Blog",
15
]
- ]
+ ],
+ "id" : "015"
},
{
"data" : [
@@ -312,12 +314,11 @@
12
]
],
- "id" : "016",
- "name" : "016"
+ "name" : "016",
+ "id" : "016"
},
{
"name" : "017",
- "id" : "017",
"data" : [
[
"Perl",
@@ -331,11 +332,11 @@
"Blog",
12
]
- ]
+ ],
+ "id" : "017"
},
{
"name" : "018",
- "id" : "018",
"data" : [
[
"Perl",
@@ -349,7 +350,8 @@
"Blog",
14
]
- ]
+ ],
+ "id" : "018"
},
{
"name" : "019",
@@ -370,6 +372,7 @@
"id" : "019"
},
{
+ "id" : "020",
"name" : "020",
"data" : [
[
@@ -384,8 +387,7 @@
"Blog",
13
]
- ],
- "id" : "020"
+ ]
},
{
"data" : [
@@ -402,11 +404,11 @@
10
]
],
- "id" : "021",
- "name" : "021"
+ "name" : "021",
+ "id" : "021"
},
{
- "id" : "022",
+ "name" : "022",
"data" : [
[
"Perl",
@@ -421,7 +423,7 @@
10
]
],
- "name" : "022"
+ "id" : "022"
},
{
"id" : "023",
@@ -442,6 +444,7 @@
"name" : "023"
},
{
+ "name" : "024",
"data" : [
[
"Perl",
@@ -456,11 +459,9 @@
11
]
],
- "id" : "024",
- "name" : "024"
+ "id" : "024"
},
{
- "name" : "025",
"id" : "025",
"data" : [
[
@@ -475,9 +476,11 @@
"Blog",
12
]
- ]
+ ],
+ "name" : "025"
},
{
+ "id" : "026",
"name" : "026",
"data" : [
[
@@ -492,10 +495,10 @@
"Blog",
10
]
- ],
- "id" : "026"
+ ]
},
{
+ "name" : "027",
"data" : [
[
"Perl",
@@ -510,12 +513,11 @@
9
]
],
- "id" : "027",
- "name" : "027"
+ "id" : "027"
},
{
- "name" : "028",
"id" : "028",
+ "name" : "028",
"data" : [
[
"Perl",
@@ -532,6 +534,7 @@
]
},
{
+ "name" : "029",
"data" : [
[
"Perl",
@@ -546,10 +549,10 @@
12
]
],
- "id" : "029",
- "name" : "029"
+ "id" : "029"
},
{
+ "id" : "030",
"data" : [
[
"Perl",
@@ -564,10 +567,11 @@
10
]
],
- "id" : "030",
"name" : "030"
},
{
+ "id" : "031",
+ "name" : "031",
"data" : [
[
"Perl",
@@ -581,12 +585,10 @@
"Blog",
9
]
- ],
- "id" : "031",
- "name" : "031"
+ ]
},
{
- "name" : "032",
+ "id" : "032",
"data" : [
[
"Perl",
@@ -601,10 +603,10 @@
10
]
],
- "id" : "032"
+ "name" : "032"
},
{
- "name" : "033",
+ "id" : "033",
"data" : [
[
"Perl",
@@ -619,11 +621,10 @@
10
]
],
- "id" : "033"
+ "name" : "033"
},
{
"name" : "034",
- "id" : "034",
"data" : [
[
"Perl",
@@ -637,10 +638,11 @@
"Blog",
11
]
- ]
+ ],
+ "id" : "034"
},
{
- "name" : "035",
+ "id" : "035",
"data" : [
[
"Perl",
@@ -655,9 +657,10 @@
9
]
],
- "id" : "035"
+ "name" : "035"
},
{
+ "id" : "036",
"data" : [
[
"Perl",
@@ -672,10 +675,10 @@
10
]
],
- "id" : "036",
"name" : "036"
},
{
+ "id" : "037",
"data" : [
[
"Perl",
@@ -690,10 +693,10 @@
9
]
],
- "id" : "037",
"name" : "037"
},
{
+ "id" : "038",
"data" : [
[
"Perl",
@@ -708,11 +711,9 @@
11
]
],
- "id" : "038",
"name" : "038"
},
{
- "name" : "039",
"id" : "039",
"data" : [
[
@@ -727,7 +728,8 @@
"Blog",
12
]
- ]
+ ],
+ "name" : "039"
},
{
"name" : "040",
@@ -748,7 +750,6 @@
"id" : "040"
},
{
- "name" : "041",
"id" : "041",
"data" : [
[
@@ -763,9 +764,11 @@
"Blog",
7
]
- ]
+ ],
+ "name" : "041"
},
{
+ "id" : "042",
"data" : [
[
"Perl",
@@ -780,44 +783,36 @@
9
]
],
- "id" : "042",
"name" : "042"
},
{
- "name" : "043",
- "id" : "043",
"data" : [
[
"Perl",
- 2
+ 4
],
[
"Raku",
- 4
+ 6
],
[
"Blog",
- 0
+ 1
]
- ]
+ ],
+ "name" : "043",
+ "id" : "043"
}
]
},
- "yAxis" : {
- "title" : {
- "text" : "Total Solutions"
- }
- },
- "subtitle" : {
- "text" : "Click the columns to drilldown the language breakdown. Last updated at 2020-01-13 13:26:31 GMT"
- },
"series" : [
{
+ "colorByPoint" : "true",
"data" : [
{
- "drilldown" : "001",
+ "name" : "#001",
"y" : 140,
- "name" : "#001"
+ "drilldown" : "001"
},
{
"drilldown" : "002",
@@ -850,14 +845,14 @@
"drilldown" : "007"
},
{
+ "name" : "#008",
"drilldown" : "008",
- "y" : 70,
- "name" : "#008"
+ "y" : 70
},
{
+ "name" : "#009",
"drilldown" : "009",
- "y" : 68,
- "name" : "#009"
+ "y" : 68
},
{
"drilldown" : "010",
@@ -865,9 +860,9 @@
"name" : "#010"
},
{
- "drilldown" : "011",
+ "name" : "#011",
"y" : 79,
- "name" : "#011"
+ "drilldown" : "011"
},
{
"y" : 83,
@@ -875,9 +870,9 @@
"name" : "#012"
},
{
- "name" : "#013",
+ "y" : 76,
"drilldown" : "013",
- "y" : 76
+ "name" : "#013"
},
{
"name" : "#014",
@@ -890,8 +885,8 @@
"drilldown" : "015"
},
{
- "drilldown" : "016",
"y" : 66,
+ "drilldown" : "016",
"name" : "#016"
},
{
@@ -900,14 +895,14 @@
"drilldown" : "017"
},
{
- "drilldown" : "018",
"y" : 76,
+ "drilldown" : "018",
"name" : "#018"
},
{
- "drilldown" : "019",
+ "name" : "#019",
"y" : 95,
- "name" : "#019"
+ "drilldown" : "019"
},
{
"name" : "#020",
@@ -915,14 +910,14 @@
"y" : 95
},
{
- "drilldown" : "021",
"y" : 67,
+ "drilldown" : "021",
"name" : "#021"
},
{
- "name" : "#022",
+ "y" : 63,
"drilldown" : "022",
- "y" : 63
+ "name" : "#022"
},
{
"name" : "#023",
@@ -930,14 +925,14 @@
"y" : 91
},
{
- "y" : 70,
"drilldown" : "024",
+ "y" : 70,
"name" : "#024"
},
{
- "name" : "#025",
+ "y" : 55,
"drilldown" : "025",
- "y" : 55
+ "name" : "#025"
},
{
"name" : "#026",
@@ -945,9 +940,9 @@
"y" : 70
},
{
- "name" : "#027",
"y" : 58,
- "drilldown" : "027"
+ "drilldown" : "027",
+ "name" : "#027"
},
{