diff options
| author | Mohammad S Anwar <mohammad.anwar@yahoo.com> | 2020-02-10 11:52:11 +0000 |
|---|---|---|
| committer | Mohammad S Anwar <mohammad.anwar@yahoo.com> | 2020-02-10 11:52:11 +0000 |
| commit | d5741960b9b2f50c21d2efd4975281380fe69ef7 (patch) | |
| tree | 49392a743d6810d74022b9b88555d66171c5f119 | |
| parent | eafbcb908967a51753c6578afb7694dbff764e61 (diff) | |
| download | perlweeklychallenge-club-d5741960b9b2f50c21d2efd4975281380fe69ef7.tar.gz perlweeklychallenge-club-d5741960b9b2f50c21d2efd4975281380fe69ef7.tar.bz2 perlweeklychallenge-club-d5741960b9b2f50c21d2efd4975281380fe69ef7.zip | |
- Added solutions by Javier Luque.
| -rw-r--r-- | challenge-047/javier-luque/blog.txt | 1 | ||||
| -rw-r--r-- | challenge-047/javier-luque/perl/ch-1.pl | 22 | ||||
| -rw-r--r-- | challenge-047/javier-luque/perl/ch-2.pl | 21 | ||||
| -rw-r--r-- | challenge-047/javier-luque/raku/ch-1.p6 | 59 | ||||
| -rw-r--r-- | challenge-047/javier-luque/raku/ch-2.p6 | 20 | ||||
| -rw-r--r-- | stats/pwc-current.json | 83 | ||||
| -rw-r--r-- | stats/pwc-language-breakdown-summary.json | 70 | ||||
| -rw-r--r-- | stats/pwc-language-breakdown.json | 638 | ||||
| -rw-r--r-- | stats/pwc-leaders.json | 424 | ||||
| -rw-r--r-- | stats/pwc-summary-1-30.json | 48 | ||||
| -rw-r--r-- | stats/pwc-summary-121-150.json | 102 | ||||
| -rw-r--r-- | stats/pwc-summary-31-60.json | 58 | ||||
| -rw-r--r-- | stats/pwc-summary-61-90.json | 100 | ||||
| -rw-r--r-- | stats/pwc-summary-91-120.json | 54 | ||||
| -rw-r--r-- | stats/pwc-summary.json | 36 |
15 files changed, 941 insertions, 795 deletions
diff --git a/challenge-047/javier-luque/blog.txt b/challenge-047/javier-luque/blog.txt new file mode 100644 index 0000000000..231f8ed1d6 --- /dev/null +++ b/challenge-047/javier-luque/blog.txt @@ -0,0 +1 @@ +https://perlchallenges.wordpress.com/2020/02/10/perl-weekly-challenge-047/ diff --git a/challenge-047/javier-luque/perl/ch-1.pl b/challenge-047/javier-luque/perl/ch-1.pl new file mode 100644 index 0000000000..918c8bd150 --- /dev/null +++ b/challenge-047/javier-luque/perl/ch-1.pl @@ -0,0 +1,22 @@ +#!/usr/bin/perl +# Test: ./ch-1.pl V + VI +use strict; +use warnings; +use feature qw /say/; +use Number::Convert::Roman; + +my $input_string = join ' ', @ARGV; +my $c = Number::Convert::Roman->new; + +my %operations = ( + '+' => sub {return ($c->arabic($_[0]) + $c->arabic($_[1]))}, + '-' => sub {return ($c->arabic($_[0]) - $c->arabic($_[1]))}, + 'x' => sub {return ($c->arabic($_[0]) * $c->arabic($_[1]))}, + '/' => sub {return ($c->arabic($_[0]) / $c->arabic($_[1]))}, +); + +if ($input_string =~ /^(\w+)\s*([\+\-x\/])\s*(\w+)$/) { + say $c->roman(int($operations{$2}->($1, $3))); +} else { + say "Invalid input"; +} diff --git a/challenge-047/javier-luque/perl/ch-2.pl b/challenge-047/javier-luque/perl/ch-2.pl new file mode 100644 index 0000000000..bbcf9164f4 --- /dev/null +++ b/challenge-047/javier-luque/perl/ch-2.pl @@ -0,0 +1,21 @@ +#!/usr/bin/perl +# test: perl ch-2.pl +use strict; +use warnings; +use feature qw /say/; + +my $n = 100; +my $p = 0; + +while ($p < 20) { + $n =~ /^(\d)\d*(\d)$/; + my $g_divisor = $1 . $2; + + if ($n % $g_divisor == 0){ + $p++; + say $n . ' / ' . $g_divisor . ' = ' . + ($n / $g_divisor); + } + + $n++; +} diff --git a/challenge-047/javier-luque/raku/ch-1.p6 b/challenge-047/javier-luque/raku/ch-1.p6 new file mode 100644 index 0000000000..196779ad68 --- /dev/null +++ b/challenge-047/javier-luque/raku/ch-1.p6 @@ -0,0 +1,59 @@ +# Test: perl6 ch1.p6 "V + VI" +use v6.d; + +sub MAIN($equation) { + my %operators = ( + '+' => -> $a , $b { rtoa($a) + rtoa($b) }, + '-' => -> $a , $b { rtoa($a) - rtoa($b) }, + 'x' => -> $a , $b { rtoa($a) * rtoa($b) }, + '/' => -> $a , $b { rtoa($a) / rtoa($b) }, + ); + + if ($equation ~~ /^(\w+)\s*(\+|\-|x|\/)\s*(\w+)$/) { + say ator(%operators{$1}($0.Str, $2.Str).Int); + } else { + say "Invalid input"; + } +} + + +# Inspired by: +# https://examples.p6c.dev/categories/euler/prob089-andreoss.html + +multi rtoa() { 0 } +multi rtoa(Str $r where $r.chars > 1 ) { + rtoa(| $r.comb) +} + +multi rtoa('I', |a) { 1 + rtoa(|a) } +multi rtoa('I', 'V', |a) { 4 + rtoa(|a) } +multi rtoa('V', |a) { 5 + rtoa(|a) } +multi rtoa('I', 'X', |a) { 9 + rtoa(|a) } +multi rtoa('X', |a) { 10 + rtoa(|a) } +multi rtoa('X', 'L', |a) { 40 + rtoa(|a) } +multi rtoa('L' , |a) { 50 + rtoa(|a) } +multi rtoa('X', 'C', |a) { 90 + rtoa(|a) } +multi rtoa('C', |a) { 100 + rtoa(|a) } +multi rtoa('C', 'D', |a) { 400 + rtoa(|a) } +multi rtoa('D', |a) { 500 + rtoa(|a) } +multi rtoa('C', 'M', |a) { 900 + rtoa(|a) } +multi rtoa('M', |a) { 1000 + rtoa(|a) } + +sub ator(Int $n) returns Str { + given $n { + when $n >= 1000 { 'M' ~ ator($n- 1000) } + when $n >= 900 { 'CM' ~ ator($n - 900) } + when $n >= 500 { 'D' ~ ator($n - 500) } + when $n >= 400 { 'CD' ~ ator($n- 400) } + when $n >= 100 { 'C' ~ ator($n - 100) } + when $n >= 90 { 'XC' ~ ator($n - 90) } + when $n >= 50 { 'L' ~ ator($n - 50) } + when $n >= 40 { 'XL' ~ ator($n - 40) } + when $n >= 10 { 'X' ~ ator($n - 10) } + when $n >= 9 { 'IX' ~ ator($n- 9) } + when $n >= 5 { 'V' ~ ator($n - 5) } + when $n >= 4 { 'IV' ~ ator($n - 4) } + when $n >= 1 { 'I' ~ ator($n - 1) } + default { '' } + } +} diff --git a/challenge-047/javier-luque/raku/ch-2.p6 b/challenge-047/javier-luque/raku/ch-2.p6 new file mode 100644 index 0000000000..fe39bb2554 --- /dev/null +++ b/challenge-047/javier-luque/raku/ch-2.p6 @@ -0,0 +1,20 @@ +# Test: perl6 ch-2.p6 +use v6.d; + +sub MAIN () { + my $n = 100; + my $p = 0; + + while ($p < 20) { + $n ~~ /^(\d)\d*(\d)$/; + my $g_divisor = $0 ~ $1; + + if ($n %% $g_divisor) { + $p++; + say $n ~ ' / ' ~ $g_divisor ~ + ' = ' ~ ($n / $g_divisor); + } + + $n++; + } +} diff --git a/stats/pwc-current.json b/stats/pwc-current.json index 047f4cc64d..819d4b3631 100644 --- a/stats/pwc-current.json +++ b/stats/pwc-current.json @@ -3,35 +3,39 @@ "series" : { "borderWidth" : 0, "dataLabels" : { - "format" : "{point.y}", - "enabled" : 1 + "enabled" : 1, + "format" : "{point.y}" } } }, - "subtitle" : { - "text" : "[Champions: 2] Last updated at 2020-02-10 11:38:25 GMT" - }, - "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 - }, - "chart" : { - "type" : "column" - }, - "title" : { - "text" : "Perl Weekly Challenge - 047" + "legend" : { + "enabled" : 0 }, - "yAxis" : { - "title" : { - "text" : "Total Solutions" - } + "subtitle" : { + "text" : "[Champions: 3] Last updated at 2020-02-10 11:51:55 GMT" }, "drilldown" : { "series" : [ { + "name" : "Javier Luque", + "id" : "Javier Luque", + "data" : [ + [ + "Perl", + 2 + ], + [ + "Raku", + 2 + ], + [ + "Blog", + 1 + ] + ] + }, + { "name" : "Luca Ferrari", - "id" : "Luca Ferrari", "data" : [ [ "Raku", @@ -41,7 +45,8 @@ "Blog", 2 ] - ] + ], + "id" : "Luca Ferrari" }, { "name" : "Simon Proctor", @@ -55,27 +60,45 @@ } ] }, - "legend" : { - "enabled" : 0 + "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 - 047" }, "series" : [ { + "colorByPoint" : 1, + "name" : "Perl Weekly Challenge - 047", "data" : [ { - "y" : 4, + "name" : "Javier Luque", + "y" : 5, + "drilldown" : "Javier Luque" + }, + { "name" : "Luca Ferrari", - "drilldown" : "Luca Ferrari" + "drilldown" : "Luca Ferrari", + "y" : 4 }, { - "y" : 2, + "name" : "Simon Proctor", "drilldown" : "Simon Proctor", - "name" : "Simon Proctor" + "y" : 2 } - ], - "colorByPoint" : 1, - "name" : "Perl Weekly Challenge - 047" + ] } ], + "yAxis" : { + "title" : { + "text" : "Total Solutions" + } + }, + "chart" : { + "type" : "column" + }, "xAxis" : { "type" : "category" } diff --git a/stats/pwc-language-breakdown-summary.json b/stats/pwc-language-breakdown-summary.json index 0da4f9d96e..2b590d1d12 100644 --- a/stats/pwc-language-breakdown-summary.json +++ b/stats/pwc-language-breakdown-summary.json @@ -1,11 +1,20 @@ { - "xAxis" : { - "type" : "category", - "labels" : { - "style" : { - "fontSize" : "13px", - "fontFamily" : "Verdana, sans-serif" - } + "subtitle" : { + "text" : "Last updated at 2020-02-10 11:51:55 GMT" + }, + "legend" : { + "enabled" : "false" + }, + "tooltip" : { + "pointFormat" : "<b>{point.y:.0f}</b>" + }, + "title" : { + "text" : "Perl Weekly Challenge Contributions [2019 - 2020]" + }, + "yAxis" : { + "min" : 0, + "title" : { + "text" : null } }, "series" : [ @@ -13,51 +22,42 @@ "data" : [ [ "Blog", - 496 + 497 ], [ "Perl", - 1901 + 1903 ], [ "Raku", - 1164 + 1166 ] ], + "name" : "Contributions", "dataLabels" : { + "rotation" : -90, "format" : "{point.y:.0f}", + "align" : "right", "style" : { - "fontFamily" : "Verdana, sans-serif", - "fontSize" : "13px" + "fontSize" : "13px", + "fontFamily" : "Verdana, sans-serif" }, - "color" : "#FFFFFF", + "y" : 10, "enabled" : "true", - "align" : "right", - "rotation" : -90, - "y" : 10 - }, - "name" : "Contributions" + "color" : "#FFFFFF" + } } ], - "legend" : { - "enabled" : "false" - }, - "yAxis" : { - "title" : { - "text" : null - }, - "min" : 0 - }, "chart" : { "type" : "column" }, - "title" : { - "text" : "Perl Weekly Challenge Contributions [2019 - 2020]" - }, - "tooltip" : { - "pointFormat" : "<b>{point.y:.0f}</b>" - }, - "subtitle" : { - "text" : "Last updated at 2020-02-10 11:38:25 GMT" + "xAxis" : { + "type" : "category", + "labels" : { + "style" : { + "fontSize" : "13px", + "fontFamily" : "Verdana, sans-serif" + } + } } } diff --git a/stats/pwc-language-breakdown.json b/stats/pwc-language-breakdown.json index 690811ddc9..d40adc03a8 100644 --- a/stats/pwc-language-breakdown.json +++ b/stats/pwc-language-breakdown.json @@ -2,255 +2,15 @@ "xAxis" : { "type" : "category" }, - "series" : [ - { - "colorByPoint" : "true", - "name" : "Perl Weekly Challenge Languages", - "data" : [ - { - "y" : 140, - "drilldown" : "001", - "name" : "#001" - }, - { - "y" : 109, - "drilldown" : "002", - "name" : "#002" - }, - { - "y" : 71, - "name" : "#003", - "drilldown" : "003" - }, - { - "drilldown" : "004", - "name" : "#004", - "y" : 91 - }, - { - "y" : 71, - "drilldown" : "005", - "name" : "#005" - }, - { - "name" : "#006", - "drilldown" : "006", - "y" : 48 - }, - { - "name" : "#007", - "drilldown" : "007", - "y" : 56 - }, - { - "name" : "#008", - "drilldown" : "008", - "y" : 70 - }, - { - "drilldown" : "009", - "name" : "#009", - "y" : 68 - }, - { - "name" : "#010", - "drilldown" : "010", - "y" : 60 - }, - { - "name" : "#011", - "drilldown" : "011", - "y" : 79 - }, - { - "name" : "#012", - "drilldown" : "012", - "y" : 83 - }, - { - "drilldown" : "013", - "name" : "#013", - "y" : 76 - }, - { - "name" : "#014", - "drilldown" : "014", - "y" : 96 - }, - { - "y" : 93, - "name" : "#015", - "drilldown" : "015" - }, - { - "y" : 66, - "name" : "#016", - "drilldown" : "016" - }, - { - "name" : "#017", - "drilldown" : "017", - "y" : 79 - }, - { - "y" : 76, - "drilldown" : "018", - "name" : "#018" - }, - { - "drilldown" : "019", - "name" : "#019", - "y" : 95 - }, - { - "y" : 95, - "drilldown" : "020", - "name" : "#020" - }, - { - "y" : 67, - "name" : "#021", - "drilldown" : "021" - }, - { - "y" : 63, - "name" : "#022", - "drilldown" : "022" - }, - { - "drilldown" : "023", - "name" : "#023", - "y" : 91 - }, - { - "y" : 70, - "drilldown" : "024", - "name" : "#024" - }, - { - "y" : 55, - "name" : "#025", - "drilldown" : "025" - }, - { - "y" : 70, - "drilldown" : "026", - "name" : "#026" - }, - { - "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, - "name" : "#031", - "drilldown" : "031" - }, - { - "y" : 92, - "drilldown" : "032", - "name" : "#032" - }, - { - "y" : 108, - "name" : "#033", - "drilldown" : "033" - }, - { - "drilldown" : "034", - "name" : "#034", - "y" : 60 - }, - { - "y" : 60, - "drilldown" : "035", - "name" : "#035" - }, - { - "y" : 61, - "drilldown" : "036", - "name" : "#036" - }, - { - "drilldown" : "037", - "name" : "#037", - "y" : 63 - }, - { - "name" : "#038", - "drilldown" : "038", - "y" : 60 - }, - { - "y" : 60, - "name" : "#039", - "drilldown" : "039" - }, - { - "y" : 66, - "name" : "#040", - "drilldown" : "040" - }, - { - "name" : "#041", - "drilldown" : "041", - "y" : 69 - }, - { - "y" : 88, - "drilldown" : "042", - "name" : "#042" - }, - { - "drilldown" : "043", - "name" : "#043", - "y" : 65 - }, - { - "drilldown" : "044", - "name" : "#044", - "y" : 75 - }, - { - "y" : 93, - "name" : "#045", - "drilldown" : "045" - }, - { - "drilldown" : "046", - "name" : "#046", - "y" : 82 - }, - { - "y" : 6, - "name" : "#047", - "drilldown" : "047" - } - ] - } - ], - "legend" : { - "enabled" : "false" + "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" : [ { + "name" : "001", "id" : "001", "data" : [ [ @@ -265,8 +25,7 @@ "Blog", 11 ] - ], - "name" : "001" + ] }, { "data" : [ @@ -287,7 +46,6 @@ "name" : "002" }, { - "name" : "003", "id" : "003", "data" : [ [ @@ -302,10 +60,10 @@ "Blog", 9 ] - ] + ], + "name" : "003" }, { - "id" : "004", "data" : [ [ "Perl", @@ -320,10 +78,10 @@ 10 ] ], + "id" : "004", "name" : "004" }, { - "name" : "005", "id" : "005", "data" : [ [ @@ -338,10 +96,10 @@ "Blog", 12 ] - ] + ], + "name" : "005" }, { - "id" : "006", "data" : [ [ "Perl", @@ -356,6 +114,7 @@ 7 ] ], + "id" : "006", "name" : "006" }, { @@ -377,7 +136,6 @@ ] }, { - "name" : "008", "data" : [ [ "Perl", @@ -392,10 +150,11 @@ 12 ] ], - "id" : "008" + "id" : "008", + "name" : "008" }, { - "name" : "009", + "id" : "009", "data" : [ [ "Perl", @@ -410,7 +169,7 @@ 13 ] ], - "id" : "009" + "name" : "009" }, { "id" : "010", @@ -431,6 +190,7 @@ "name" : "010" }, { + "id" : "011", "data" : [ [ "Perl", @@ -445,10 +205,10 @@ 10 ] ], - "id" : "011", "name" : "011" }, { + "name" : "012", "data" : [ [ "Perl", @@ -463,11 +223,10 @@ 11 ] ], - "id" : "012", - "name" : "012" + "id" : "012" }, { - "name" : "013", + "id" : "013", "data" : [ [ "Perl", @@ -482,7 +241,7 @@ 13 ] ], - "id" : "013" + "name" : "013" }, { "name" : "014", @@ -503,7 +262,7 @@ "id" : "014" }, { - "id" : "015", + "name" : "015", "data" : [ [ "Perl", @@ -518,9 +277,10 @@ 15 ] ], - "name" : "015" + "id" : "015" }, { + "id" : "016", "data" : [ [ "Perl", @@ -535,11 +295,10 @@ 12 ] ], - "id" : "016", "name" : "016" }, { - "name" : "017", + "id" : "017", "data" : [ [ "Perl", @@ -554,11 +313,10 @@ 12 ] ], - "id" : "017" + "name" : "017" }, { "name" : "018", - "id" : "018", "data" : [ [ "Perl", @@ -572,9 +330,11 @@ "Blog", 14 ] - ] + ], + "id" : "018" }, { + "name" : "019", "data" : [ [ "Perl", @@ -589,8 +349,7 @@ 13 ] ], - "id" : "019", - "name" : "019" + "id" : "019" }, { "name" : "020", @@ -611,7 +370,7 @@ "id" : "020" }, { - "id" : "021", + "name" : "021", "data" : [ [ "Perl", @@ -626,7 +385,7 @@ 10 ] ], - "name" : "021" + "id" : "021" }, { "id" : "022", @@ -683,7 +442,6 @@ ] }, { - "name" : "025", "id" : "025", "data" : [ [ @@ -698,7 +456,8 @@ "Blog", 12 ] - ] + ], + "name" : "025" }, { "id" : "026", @@ -719,7 +478,6 @@ "name" : "026" }, { - "name" : "027", "data" : [ [ "Perl", @@ -734,9 +492,11 @@ 9 ] ], - "id" : "027" + "id" : "027", + "name" : "027" }, { + "name" : "028", "data" : [ [ "Perl", @@ -751,11 +511,9 @@ 9 ] ], - "id" : "028", - "name" : "028" + "id" : "028" }, { - "id" : "029", "data" : [ [ "Perl", @@ -770,10 +528,11 @@ 12 ] ], + "id" : "029", "name" : "029" }, { - "name" : "030", + "id" : "030", "data" : [ [ "Perl", @@ -788,10 +547,9 @@ 10 ] ], - "id" : "030" + "name" : "030" }, { - "name" : "031", "data" : [ [ "Perl", @@ -806,7 +564,8 @@ 9 ] ], - "id" : "031" + "id" : "031", + "name" : "031" }, { "data" : [ @@ -845,7 +604,6 @@ "id" : "033" }, { - "name" : "034", "id" : "034", "data" : [ [ @@ -860,7 +618,8 @@ "Blog", 11 ] - ] + ], + "name" : "034" }, { "name" : "035", @@ -881,6 +640,7 @@ "id" : "035" }, { + "name" : "036", "id" : "036", "data" : [ [ @@ -895,12 +655,10 @@ "Blog", 10 ] - ], - "name" : "036" + ] }, { "name" : "037", - "id" : "037", "data" : [ [ "Perl", @@ -914,7 +672,8 @@ "Blog", 9 ] - ] + ], + "id" : "037" }, { "data" : [ @@ -935,6 +694,7 @@ "name" : "038" }, { + "id" : "039", "data" : [ [ "Perl", @@ -949,11 +709,9 @@ 12 ] ], - "id" : "039", "name" : "039" }, { - "id" : "040", "data" : [ [ "Perl", @@ -968,10 +726,11 @@ 9 ] ], + "id" : "040", "name" : "040" }, { - "id" : "041", + "name" : "041", "data" : [ [ "Perl", @@ -986,10 +745,11 @@ 8 ] ], - "name" : "041" + "id" : "041" }, { "name" : "042", + "id" : "042", "data" : [ [ "Perl", @@ -1003,12 +763,10 @@ "Blog", 11 ] - ], - "id" : "042" + ] }, { "name" : "043", - "id" : "043", "data" : [ [ "Perl", @@ -1022,7 +780,8 @@ "Blog", 10 ] - ] + ], + "id" : "043" }, { "data" : [ @@ -1061,6 +820,7 @@ "name" : "045" }, { + "name" : "046", "data" : [ [ "Perl", @@ -1075,8 +835,7 @@ 9 ] ], - "id" : "046", - "name" : "046" + "id" : "046" }, { "name" : "047", @@ -1084,38 +843,25 @@ "data" : [ [ "Perl", - 0 + 2 ], [ "Raku", |
