diff options
| author | Mohammad S Anwar <mohammad.anwar@yahoo.com> | 2020-05-18 20:23:53 +0100 |
|---|---|---|
| committer | Mohammad S Anwar <mohammad.anwar@yahoo.com> | 2020-05-18 20:23:53 +0100 |
| commit | 4e132800212e13c2ea547262129e8e19e2ea1c35 (patch) | |
| tree | 59c037ca3e381327fe6cf60bf1af68b143c3c83c | |
| parent | a0af2406a9628558b51170f69698941d8fd93eae (diff) | |
| download | perlweeklychallenge-club-4e132800212e13c2ea547262129e8e19e2ea1c35.tar.gz perlweeklychallenge-club-4e132800212e13c2ea547262129e8e19e2ea1c35.tar.bz2 perlweeklychallenge-club-4e132800212e13c2ea547262129e8e19e2ea1c35.zip | |
- Added solutions by Ulrich Rieke.
| -rw-r--r-- | challenge-061/ulrich-rieke/perl/ch-1.pl | 47 | ||||
| -rw-r--r-- | challenge-061/ulrich-rieke/raku/ch-1.p6 | 39 | ||||
| -rw-r--r-- | challenge-061/ulrich-rieke/raku/ch-2.p6 | 60 | ||||
| -rw-r--r-- | stats/pwc-current.json | 107 | ||||
| -rw-r--r-- | stats/pwc-language-breakdown-summary.json | 66 | ||||
| -rw-r--r-- | stats/pwc-language-breakdown.json | 444 | ||||
| -rw-r--r-- | stats/pwc-leaders.json | 744 | ||||
| -rw-r--r-- | stats/pwc-summary-1-30.json | 52 | ||||
| -rw-r--r-- | stats/pwc-summary-121-150.json | 106 | ||||
| -rw-r--r-- | stats/pwc-summary-151-180.json | 60 | ||||
| -rw-r--r-- | stats/pwc-summary-31-60.json | 54 | ||||
| -rw-r--r-- | stats/pwc-summary-61-90.json | 52 | ||||
| -rw-r--r-- | stats/pwc-summary-91-120.json | 46 | ||||
| -rw-r--r-- | stats/pwc-summary.json | 382 |
14 files changed, 1212 insertions, 1047 deletions
diff --git a/challenge-061/ulrich-rieke/perl/ch-1.pl b/challenge-061/ulrich-rieke/perl/ch-1.pl new file mode 100644 index 0000000000..08dd381dfe --- /dev/null +++ b/challenge-061/ulrich-rieke/perl/ch-1.pl @@ -0,0 +1,47 @@ +#!/usr/bin/perl ; +use strict ; +use warnings ; + +sub enterList { + my @input ; + print "Enter next number ( 'e' to end! ) : " ; + my $number = <STDIN> ; + chomp $number ; + while ( $number ne 'e' ) { + push( @input , $number ) ; + print "Enter next number ( 'e' to end! ) : " ; + $number = <STDIN> ; + chomp $number ; + } + return @input ; +} + +sub findSublists { + my $array = shift ; + my $len = scalar (@{$array}) - 1 ; + my @sublists ; + for my $start (0..$len - 1 ) { + for my $end ( $start + 1 ..$len ) { + my @sublist = @{$array}[$start..$end] ; + push( @sublists, \@sublist ) ; + } + } + return @sublists ; +} + +my @input = enterList( ) ; +my @sublists = findSublists( \@input ) ; +my %producthash ; +for my $sublist ( @sublists ) { + my $product = 1 ; + for my $element ( @{$sublist} ) { + $product *= $element ; + } + $producthash{ $product } = $sublist ; +} +my @sorted = sort { $b <=> $a } keys %producthash ; +my $biggest_product = $sorted[ 0 ] ; +print "The biggest product ( $biggest_product ) is produced by " ; +print "[ " ; +print join( ', ' , @{$producthash{ $biggest_product }} ) ; +print " ]!\n" ; diff --git a/challenge-061/ulrich-rieke/raku/ch-1.p6 b/challenge-061/ulrich-rieke/raku/ch-1.p6 new file mode 100644 index 0000000000..a5db5ca926 --- /dev/null +++ b/challenge-061/ulrich-rieke/raku/ch-1.p6 @@ -0,0 +1,39 @@ +use v6 ; + +sub enterList { + my @input ; + my $number = prompt "Enter next number ( 'e' to end! ) : " ; + while ( ~$number ne 'e' ) { + @input.push( $number ) ; + $number = prompt "Enter next number ( 'e' to end! ) : " ; + } + return @input ; +} + +sub findSublists( @array ) { + my $len = @array.elems ; + my @sublists ; + for ( 0 .. $len - 2 ) -> $start { + for ( $start + 1 .. $len -1 ) -> $end { + my @sublist = @array[$start..$end] ; + @sublists.push( @sublist ) ; + } + } + return @sublists ; +} + +my @input = enterList( ) ; +while ( @input.elems < 4 ) { + say "There should be at least 4 elements!" ; + @input = enterList( ) ; +} +my @sublists = findSublists( @input ) ; +my %producthash ; +for @sublists -> @list { + my $prod = [*] @list ; + %producthash{ $prod } = @list ; +} +my $biggest_product = %producthash.keys.max ; +print "The sublist with the biggest product ($biggest_product) " ; +say " is [{%producthash{$biggest_product}.join( ',' )}] !" ; + diff --git a/challenge-061/ulrich-rieke/raku/ch-2.p6 b/challenge-061/ulrich-rieke/raku/ch-2.p6 new file mode 100644 index 0000000000..b6327a98d6 --- /dev/null +++ b/challenge-061/ulrich-rieke/raku/ch-2.p6 @@ -0,0 +1,60 @@ +use v6 ; + +#defining the possible number range appears to be more practical than a +#complicated regular expression +sub isValidOctet( Str $number --> Bool ) { + return 0 <= +$number <= 255 ; +} + +#finds all the possible length combinations that add up to the total +#length of the input. We know : every octet has 1 to 3 digits +sub findPossibleOctetLengths( Int $len ) { + my @possibleLengths ; + for (1 .. 3 ) -> $firstOctet { + for (1 .. 3 ) -> $secondOctet { + for (1 .. 3 ) -> $thirdOctet { + for (1 .. 3 ) -> $fourthOctet { + if ( $firstOctet + $secondOctet + $thirdOctet + + $fourthOctet == $len ) { + my @combi = ( $firstOctet , $secondOctet , + $thirdOctet, $fourthOctet ) ; + @possibleLengths.push( @combi ) ; + } + } + } + } + } + return @possibleLengths ; +} + +my Str $ip = prompt "Enter a possible IP string ! " ; +while ( $ip !~~ /\d ** 4..12/ ) { + say "invalid input!" ; + $ip = prompt "Enter a possible IP string ! " ; +} +my @possibleIPs ; +my $len = $ip.chars ; +my @lengthCombinations = findPossibleOctetLengths( $len ) ; +#cut out the different length combinations out of the ip and check for validity +for @lengthCombinations -> @combi { + my @parts ; + my $pos = 0 ; + @parts.push( $ip.substr( $pos , @combi[ 0 ] )) ; + $pos += @combi[ 0 ] ; + @parts.push( $ip.substr( $pos , @combi[ 1 ] ) ) ; + $pos += @combi[ 1 ] ; + @parts.push( $ip.substr( $pos , @combi[ 2 ] ) ) ; + $pos += @combi[ 2 ] ; + @parts.push( $ip.substr( $pos ) ) ; +#all possible 4 octets must be valid + if ( @parts.grep( { isValidOctet( $_ ) } ).elems == 4 ) { + @possibleIPs.push( @parts.join('.') ) ; + } +} +if ( @possibleIPs ) { + say "The following IP's can be constructed from $ip:" ; + .say for @possibleIPs ; +} +else { + say "No valid IP can be constructed!" ; +} diff --git a/stats/pwc-current.json b/stats/pwc-current.json index 7bac08827b..9e0c63dd65 100644 --- a/stats/pwc-current.json +++ b/stats/pwc-current.json @@ -4,21 +4,13 @@ "text" : "Total Solutions" } }, - "xAxis" : { - "type" : "category" - }, - "plotOptions" : { - "series" : { - "borderWidth" : 0, - "dataLabels" : { - "enabled" : 1, - "format" : "{point.y}" - } - } + "chart" : { + "type" : "column" }, "drilldown" : { "series" : [ { + "name" : "Javier Luque", "data" : [ [ "Perl", @@ -33,11 +25,9 @@ 1 ] ], - "name" : "Javier Luque", "id" : "Javier Luque" }, { - "id" : "Luca Ferrari", "name" : "Luca Ferrari", "data" : [ [ @@ -48,17 +38,18 @@ "Blog", 2 ] - ] + ], + "id" : "Luca Ferrari" }, { + "id" : "Mark Anderson", "name" : "Mark Anderson", "data" : [ [ "Raku", 1 ] - ], - "id" : "Mark Anderson" + ] }, { "id" : "Mohammad S Anwar", @@ -85,70 +76,98 @@ "id" : "Roger Bell_West" }, { - "id" : "Simon Proctor", + "data" : [ + [ + "Raku", + 2 + ] + ], "name" : "Simon Proctor", + "id" : "Simon Proctor" + }, + { + "id" : "Ulrich Rieke", "data" : [ [ + "Perl", + 1 + ], + [ "Raku", 2 ] - ] + ], + "name" : "Ulrich Rieke" } ] }, + "plotOptions" : { + "series" : { + "borderWidth" : 0, + "dataLabels" : { + "format" : "{point.y}", + "enabled" : 1 + } + } + }, + "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 - 061" + }, + "legend" : { + "enabled" : 0 + }, "series" : [ { "data" : [ { - "drilldown" : "Javier Luque", + "y" : 5, "name" : "Javier Luque", - "y" : 5 + "drilldown" : "Javier Luque" }, { - "drilldown" : "Luca Ferrari", "y" : 4, + "drilldown" : "Luca Ferrari", "name" : "Luca Ferrari" }, { - "drilldown" : "Mark Anderson", + "y" : 1, "name" : "Mark Anderson", - "y" : 1 + "drilldown" : "Mark Anderson" }, { - "name" : "Mohammad S Anwar", "y" : 2, + "name" : "Mohammad S Anwar", "drilldown" : "Mohammad S Anwar" }, { + "y" : 3, "drilldown" : "Roger Bell_West", - "name" : "Roger Bell_West", - "y" : 3 + "name" : "Roger Bell_West" }, { - "y" : 2, + "drilldown" : "Simon Proctor", "name" : "Simon Proctor", - "drilldown" : "Simon Proctor" + "y" : 2 + }, + { + "y" : 3, + "drilldown" : "Ulrich Rieke", + "name" : "Ulrich Rieke" } ], - "name" : "Perl Weekly Challenge - 061", - "colorByPoint" : 1 + "colorByPoint" : 1, + "name" : "Perl Weekly Challenge - 061" } ], - "chart" : { - "type" : "column" + "xAxis" : { + "type" : "category" }, "subtitle" : { - "text" : "[Champions: 6] Last updated at 2020-05-18 16:08:24 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 - }, - "title" : { - "text" : "Perl Weekly Challenge - 061" - }, - "legend" : { - "enabled" : 0 + "text" : "[Champions: 7] Last updated at 2020-05-18 19:23:38 GMT" } } diff --git a/stats/pwc-language-breakdown-summary.json b/stats/pwc-language-breakdown-summary.json index 0e82a88f23..11a0fcaded 100644 --- a/stats/pwc-language-breakdown-summary.json +++ b/stats/pwc-language-breakdown-summary.json @@ -1,33 +1,30 @@ { - "xAxis" : { - "type" : "category", - "labels" : { - "style" : { - "fontFamily" : "Verdana, sans-serif", - "fontSize" : "13px" - } - } + "tooltip" : { + "pointFormat" : "<b>{point.y:.0f}</b>" + }, + "chart" : { + "type" : "column" }, "yAxis" : { - "min" : 0, "title" : { "text" : null - } + }, + "min" : 0 + }, + "subtitle" : { + "text" : "Last updated at 2020-05-18 19:23:38 GMT" + }, + "xAxis" : { + "labels" : { + "style" : { + "fontSize" : "13px", + "fontFamily" : "Verdana, sans-serif" + } + }, + "type" : "category" }, "series" : [ { - "dataLabels" : { - "format" : "{point.y:.0f}", - "rotation" : -90, - "style" : { - "fontFamily" : "Verdana, sans-serif", - "fontSize" : "13px" - }, - "y" : 10, - "align" : "right", - "enabled" : "true", - "color" : "#FFFFFF" - }, "data" : [ [ "Blog", @@ -35,28 +32,31 @@ ], [ "Perl", - 2546 + 2547 ], [ "Raku", - 1603 + 1605 ] ], + "dataLabels" : { + "enabled" : "true", + "style" : { + "fontFamily" : "Verdana, sans-serif", + "fontSize" : "13px" + }, + "align" : "right", + "format" : "{point.y:.0f}", + "rotation" : -90, + "y" : 10, + "color" : "#FFFFFF" + }, "name" : "Contributions" } ], - "chart" : { - "type" : "column" - }, "title" : { "text" : "Perl Weekly Challenge Contributions [2019 - 2020]" }, - "subtitle" : { - "text" : "Last updated at 2020-05-18 16:08:23 GMT" - }, - "tooltip" : { - "pointFormat" : "<b>{point.y:.0f}</b>" - }, "legend" : { "enabled" : "false" } diff --git a/stats/pwc-language-breakdown.json b/stats/pwc-language-breakdown.json index dfe06e9463..467adb8b04 100644 --- a/stats/pwc-language-breakdown.json +++ b/stats/pwc-language-breakdown.json @@ -1,66 +1,38 @@ { - "subtitle" : { - "text" : "Click the columns to drilldown the language breakdown. Last updated at 2020-05-18 16:08:24 GMT" - }, - "tooltip" : { - "headerFormat" : "<span style=\"font-size:11px\"></span>", - "pointFormat" : "<span style=\"color:{point.color}\">Challenge {point.name}</span>: <b>{point.y:f}</b><br/>", - "followPointer" : "true" - }, - "title" : { - "text" : "Perl Weekly Challenge Language" - }, "legend" : { "enabled" : "false" }, - "chart" : { - "type" : "column" - }, - "yAxis" : { - "title" : { - "text" : "Total Solutions" - } - }, - "xAxis" : { - "type" : "category" - }, - "plotOptions" : { - "series" : { - "dataLabels" : { - "format" : "{point.y}", - "enabled" : 1 - }, - "borderWidth" : 0 - } + "title" : { + "text" : "Perl Weekly Challenge Language" }, "series" : [ { - "colorByPoint" : "true", + "name" : "Perl Weekly Challenge Languages", "data" : [ { - "drilldown" : "001", + "y" : 142, "name" : "#001", - "y" : 142 + "drilldown" : "001" }, { - "y" : 109, + "drilldown" : "002", "name" : "#002", - "drilldown" : "002" + "y" : 109 }, { - "drilldown" : "003", "y" : 71, + "drilldown" : "003", "name" : "#003" }, { - "y" : 91, + "drilldown" : "004", "name" : "#004", - "drilldown" : "004" + "y" : 91 }, { + "y" : 72, "drilldown" : "005", - "name" : "#005", - "y" : 72 + "name" : "#005" }, { "drilldown" : "006", @@ -68,99 +40,99 @@ "y" : 52 }, { + "drilldown" : "007", "name" : "#007", - "y" : 59, - "drilldown" : "007" + "y" : 59 }, { - "drilldown" : "008", + "y" : 72, "name" : "#008", - "y" : 72 + "drilldown" : "008" }, { - "drilldown" : "009", "y" : 68, + "drilldown" : "009", "name" : "#009" }, { - "name" : "#010", "y" : 60, - "drilldown" : "010" + "drilldown" : "010", + "name" : "#010" }, { - "drilldown" : "011", "y" : 79, + "drilldown" : "011", "name" : "#011" }, { + "name" : "#012", "drilldown" : "012", - "y" : 83, - "name" : "#012" + "y" : 83 }, { - "drilldown" : "013", "y" : 76, + "drilldown" : "013", "name" : "#013" }, { - "drilldown" : "014", "y" : 96, - "name" : "#014" + "name" : "#014", + "drilldown" : "014" }, { "y" : 93, - "name" : "#015", - "drilldown" : "015" + "drilldown" : "015", + "name" : "#015" }, { - "name" : "#016", "y" : 66, - "drilldown" : "016" + "drilldown" : "016", + "name" : "#016" }, { + "drilldown" : "017", "name" : "#017", - "y" : 79, - "drilldown" : "017" + "y" : 79 }, { - "drilldown" : "018", + "y" : 76, "name" : "#018", - "y" : 76 + "drilldown" : "018" }, { + "name" : "#019", "drilldown" : "019", - "y" : 97, - "name" : "#019" + "y" : 97 }, { - "drilldown" : "020", + "y" : 95, "name" : "#020", - "y" : 95 + "drilldown" : "020" }, { - "drilldown" : "021", + "y" : 67, "name" : "#021", - "y" : 67 + "drilldown" : "021" }, { - "drilldown" : "022", + "y" : 63, "name" : "#022", - "y" : 63 + "drilldown" : "022" }, { "name" : "#023", - "y" : 91, - "drilldown" : "023" + "drilldown" : "023", + "y" : 91 }, { - "name" : "#024", "y" : 70, + "name" : "#024", "drilldown" : "024" }, { - "drilldown" : "025", + "y" : 55, "name" : "#025", - "y" : 55 + "drilldown" : "025" }, { "y" : 70, @@ -169,33 +141,33 @@ }, { "name" : "#027", - "y" : 58, - "drilldown" : "027" + "drilldown" : "027", + "y" : 58 }, { + "y" : 78, "drilldown" : "028", - "name" : "#028", - "y" : 78 + "name" : "#028" }, { + "y" : 77, "drilldown" : "029", - "name" : "#029", - "y" : 77 + "name" : "#029" }, { - "drilldown" : "030", "y" : 115, + "drilldown" : "030", "name" : "#030" }, { + "drilldown" : "031", "name" : "#031", - "y" : 87, - "drilldown" : "031" + "y" : 87 }, { + "drilldown" : "032", "name" : "#032", - "y" : 92, - "drilldown" : "032" + "y" : 92 }, { "y" : 108, @@ -203,79 +175,79 @@ "drilldown" : "033" }, { - "name" : "#034", "y" : 62, - "drilldown" : "034" + "drilldown" : "034", + "name" : "#034" }, { - "drilldown" : "035", "y" : 62, - "name" : "#035" + "name" : "#035", + "drilldown" : "035" }, { + "name" : "#036", "drilldown" : "036", - "y" : 66, - "name" : "#036" + "y" : 66 }, { - "name" : "#037", "y" : 65, - "drilldown" : "037" + "drilldown" : "037", + "name" : "#037" }, { - "y" : 65, + "drilldown" : "038", "name" : "#038", - "drilldown" : "038" + "y" : 65 }, { - "y" : 60, + "drilldown" : "039", "name" : "#039", - "drilldown" : "039" + "y" : 60 }, { - "drilldown" : "040", "y" : 71, + "drilldown" : "040", "name" : "#040" }, { - "drilldown" : "041", "name" : "#041", + "drilldown" : "041", "y" : 74 }, { - "drilldown" : "042", "y" : 88, - "name" : "#042" + "name" : "#042", + "drilldown" : "042" }, { + "drilldown" : "043", "name" : "#043", - "y" : 66, - "drilldown" : "043" + "y" : 66 }, { "drilldown" : "044", - "y" : 82, - "name" : "#044" + "name" : "#044", + "y" : 82 }, { "drilldown" : "045", - "y" : 94, - "name" : "#045" + "name" : "#045", + "y" : 94 }, { - "drilldown" : "046", "y" : 85, + "drilldown" : "046", "name" : "#046" }, { "drilldown" : "047", - "y" : 82, - "name" : "#047" + "name" : "#047", + "y" : 82 }, { - "y" : 106, "name" : "#048", - "drilldown" : "048" + "drilldown" : "048", + "y" : 106 }, { "y" : 85, @@ -283,19 +255,19 @@ "drilldown" : "049" }, { + "y" : 96, "drilldown" : "050", - "name" : "#050", - "y" : 96 + "name" : "#050" }, { + "y" : 87, "drilldown" : "051", - "name" : "#051", - "y" : 87 + "name" : "#051" }, { + "y" : 89, "drilldown" : "052", - "name" : "#052", - "y" : 89 + "name" : "#052" }, { "y" : 99, @@ -303,9 +275,9 @@ "drilldown" : "053" }, { + "y" : 99, "drilldown" : "054", - "name" : "#054", - "y" : 99 + "name" : "#054" }, { "y" : 86, @@ -313,43 +285,58 @@ "drilldown" : "055" }, { - "name" : "#056", "y" : 93, - "drilldown" : "056" + "drilldown" : "056", + "name" : "#056" }, { "name" : "#057", - "y" : 78, - "drilldown" : "057" + "drilldown" : "057", + "y" : 78 }, { "drilldown" : "058", - "y" : 61, - "name" : "#058" + "name" : "#058", + "y" : 61 }, { - "y" : 82, + "drilldown" : "059", "name" : "#059", - "drilldown" : "059" + "y" : 82 }, { "name" : "#060", - "y" : 76, - "drilldown" : "060" + "drilldown" : "060", + "y" : 76 }, { - "y" : 17, + "y" : 20, "name" : "#061", "drilldown" : "061" } ], - "name" : "Perl Weekly Challenge Languages" + "colorByPoint" : "true" } ], + "subtitle" : { + "text" : "Click the columns to drilldown the language breakdown. Last updated at 2020-05-18 19:23:38 GMT" + }, + "xAxis" : { + "type" : "category" + }, + "yAxis" : { + "title" : { + "text" : "Total Solutions" + } + }, + "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/>" + }, "drilldown" : { "series" : [ { - "id" : "001", "name" : "001", "data" : [ [ @@ -364,7 +351,8 @@ "Blog", 11 ] - ] + ], + "id" : "001" }, { "name" : "002", @@ -385,6 +373,7 @@ "id" : "002" }, { + "id" : "003", "data" : [ [ "Perl", @@ -399,12 +388,9 @@ 9 ] ], - "name" : "003", - "id" : "003" + "name" : "003" }, { - "id" : "004", - "name" : "004", "data" : [ [ "Perl", @@ -418,10 +404,12 @@ "Blog", 10 ] - ] + ], + "name" : "004", + "id" : "004" }, { - "name" : "005", + "id" : "005", "data" : [ [ "Perl", @@ -436,10 +424,10 @@ 12 ] ], - "id" : "005" + "name" : "005" }, { - "id" : "006", + "name" : "006", "data" : [ [ "Perl", @@ -454,10 +442,9 @@ 7 ] ], - "name" : "006" + "id" : "006" }, { - "id" : "007", "data" : [ [ "Perl", @@ -472,10 +459,11 @@ 10 ] ], - "name" : "007" + "name" : "007", + "id" : "007" }, { - "name" : "008", + "id" : "008", "data" : [ [ "Perl", @@ -490,11 +478,10 @@ 12 ] ], - "id" : "008" + "name" : "008" }, { "id" : "009", - "name" : "009", "data" : [ [ "Perl", @@ -508,7 +495,8 @@ "Blog", 13 ] - ] + ], + "name" : "009" }, { "name" : "010", @@ -529,6 +517,7 @@ "id" : "010" }, { + "name" : "011", "data" : [ [ "Perl", @@ -543,11 +532,9 @@ 10 ] ], - "name" : "011", "id" : "011" }, { - "name" : "012", "data" : [ [ "Perl", @@ -562,10 +549,11 @@ 11 ] ], + "name" : "012", "id" : "012" }, { - "name" : "013", + "id" : "013", "data" : [ [ "Perl", @@ -580,7 +568,7 @@ 13 ] ], - "id" : "013" |
