diff options
| author | Mohammad S Anwar <mohammad.anwar@yahoo.com> | 2020-03-10 21:16:15 +0000 |
|---|---|---|
| committer | Mohammad S Anwar <mohammad.anwar@yahoo.com> | 2020-03-10 21:16:15 +0000 |
| commit | d6075f2942c82753f2d9f77ba3fe43cb73ae9689 (patch) | |
| tree | a47efb3c4a40391d3ee5ecec265115798df66952 | |
| parent | ded0d29d5002cda89381507be027c10342efc325 (diff) | |
| download | perlweeklychallenge-club-d6075f2942c82753f2d9f77ba3fe43cb73ae9689.tar.gz perlweeklychallenge-club-d6075f2942c82753f2d9f77ba3fe43cb73ae9689.tar.bz2 perlweeklychallenge-club-d6075f2942c82753f2d9f77ba3fe43cb73ae9689.zip | |
- Added solutions by Ulrich Rieke.
| -rw-r--r-- | challenge-051/ulrich-rieke/haskell/ch-1.hs | 9 | ||||
| -rw-r--r-- | challenge-051/ulrich-rieke/haskell/ch-2.hs | 21 | ||||
| -rw-r--r-- | challenge-051/ulrich-rieke/perl/ch-1.pl | 48 | ||||
| -rw-r--r-- | challenge-051/ulrich-rieke/perl/ch-2.pl | 25 | ||||
| -rw-r--r-- | challenge-051/ulrich-rieke/raku/ch-1.p6 | 41 | ||||
| -rw-r--r-- | challenge-051/ulrich-rieke/raku/ch-2.p6 | 16 | ||||
| -rw-r--r-- | stats/pwc-current.json | 167 | ||||
| -rw-r--r-- | stats/pwc-language-breakdown-summary.json | 78 | ||||
| -rw-r--r-- | stats/pwc-language-breakdown.json | 440 | ||||
| -rw-r--r-- | stats/pwc-leaders.json | 736 | ||||
| -rw-r--r-- | stats/pwc-summary-1-30.json | 24 | ||||
| -rw-r--r-- | stats/pwc-summary-121-150.json | 126 | ||||
| -rw-r--r-- | stats/pwc-summary-151-180.json | 62 | ||||
| -rw-r--r-- | stats/pwc-summary-31-60.json | 122 | ||||
| -rw-r--r-- | stats/pwc-summary-61-90.json | 32 | ||||
| -rw-r--r-- | stats/pwc-summary-91-120.json | 38 | ||||
| -rw-r--r-- | stats/pwc-summary.json | 362 |
17 files changed, 1263 insertions, 1084 deletions
diff --git a/challenge-051/ulrich-rieke/haskell/ch-1.hs b/challenge-051/ulrich-rieke/haskell/ch-1.hs new file mode 100644 index 0000000000..a434bcc3b1 --- /dev/null +++ b/challenge-051/ulrich-rieke/haskell/ch-1.hs @@ -0,0 +1,9 @@ +module Challenge051 + where +import Data.List ( sort , subsequences ) + +findTriplets :: Int -> [Int] -> [[Int]] +findTriplets theSum list = filter (\li -> sum li == theSum ) $ filter ( (3 == ) . length ) + $ subsequences sorted + where + sorted = sort list diff --git a/challenge-051/ulrich-rieke/haskell/ch-2.hs b/challenge-051/ulrich-rieke/haskell/ch-2.hs new file mode 100644 index 0000000000..39e882b35c --- /dev/null +++ b/challenge-051/ulrich-rieke/haskell/ch-2.hs @@ -0,0 +1,21 @@ +module Challenge051_2 + where +import Data.List ( subsequences, (!!) ) +import Data.Char ( digitToInt ) +import qualified Data.Set as S + +isColourful :: Int -> Bool +isColourful n + |n < 100 || n > 999 = False + |otherwise = + let numberstring = show n + combis = filter ( ( 2 <= ) . length ) $ subsequences numberstring + numbers = map ( map digitToInt ) combis + products = map product numbers + allNumbers = products ++ [ read [numberstring !! 0] , + read [numberstring !! 1] , read [numberstring !! 2 ]] + numberset = S.fromList allNumbers + in S.size numberset == 7 + +solution :: [Int] +solution = filter isColourful [100..999] diff --git a/challenge-051/ulrich-rieke/perl/ch-1.pl b/challenge-051/ulrich-rieke/perl/ch-1.pl new file mode 100644 index 0000000000..d8c16d29f9 --- /dev/null +++ b/challenge-051/ulrich-rieke/perl/ch-1.pl @@ -0,0 +1,48 @@ +#!/usr/bin/perl ; +use strict ; +use warnings ; + +sub findTriplets { + my $sum = shift ; + my $array = shift ; + my $len = scalar @{$array} ; + my @result ; + if ( $len < 3 ) { + return ( ) ; + } + foreach my $i ( 0..$len - 2 ) { + my $a = ${$array}[ $i ] ; + my $start = $i + 1 ; + my $end = $len - 1 ; + while ( $start < $end ) { + my $b = ${$array}[ $start ] ; + my $c = ${$array}[ $end ] ; + if ( $a + $b + $c == $sum ) { + my @innerresult ; + push( @innerresult, $a , $b , $c ) ; + push( @result , \@innerresult ) ; + $start++ ; + $end-- ; + } + elsif ( $a + $b + $c > $sum ) { + $end-- ; + } + else { + $start++ ; + } + } + } + return @result ; +} + +my @L = (-25 , -10 , -7 , -3 , 2 , 4 , 8 , 10 ) ; +my @sorted = sort { $a <=> $b } @L ; +my @result = findTriplets( 3 , \@sorted ) ; +if ( @result ) { + foreach my $subarray ( @result ) { + print "${$subarray}[0] , ${$subarray}[1] , ${$subarray}[2]\n" ; + } +} +else { + print "no fitting result!\n" ; +} diff --git a/challenge-051/ulrich-rieke/perl/ch-2.pl b/challenge-051/ulrich-rieke/perl/ch-2.pl new file mode 100644 index 0000000000..677ccb4a5c --- /dev/null +++ b/challenge-051/ulrich-rieke/perl/ch-2.pl @@ -0,0 +1,25 @@ +#!/usr/bin/perl ; +use strict ; +use warnings ; + +sub isColourful { + my $number = shift ; + my %numHash ; + if ( $number =~ /(\d)(\d)(\d)/ ) { + $numHash{ $1 * $2 }++ ; + $numHash{ $2 * $3 }++ ; + $numHash{ $1 * $2 * $3 }++ ; + $numHash{ $1 }++ ; + $numHash{ $2 }++ ; + $numHash{ $3 }++ ; + $numHash{ $1 * $3 }++ ; + return scalar keys %numHash == 7 ; + } + return 0 ; +} + +foreach my $num (100..999) { + if ( isColourful( $num ) ) { + print "$num\n" ; + } +} diff --git a/challenge-051/ulrich-rieke/raku/ch-1.p6 b/challenge-051/ulrich-rieke/raku/ch-1.p6 new file mode 100644 index 0000000000..4ddccf69ca --- /dev/null +++ b/challenge-051/ulrich-rieke/raku/ch-1.p6 @@ -0,0 +1,41 @@ +use v6 ; + +sub findTriplets( Int $sum, @array ) { + my $len = @array.elems ; + my @result ; + if ( $len < 3 ) { + return ( ) ; + } + for (0..$len - 2 ) -> $i { + my $a = @array[ $i ] ; + my $start = $i + 1 ; + my $end = $len - 1 ; + while ( $start < $end ) { + my $b = @array[ $start ] ; + my $c = @array[ $end ] ; + if ( $a + $b + $c == $sum ) { + my $partialresult.push( $a , $b , $c ) ; + @result.push( $partialresult ) ; + $start++ ; + $end-- ; + } + elsif ( $a + $b + $c > $sum ) { + $end-- ; + } + else { + $start++ ; + } + } + } + return @result ; +} + +my @L = (-25 , -10 , -7 , -3 , 2 , 4 , 8 , 10 ) ; +my @sorted = @L.sort ; +my @result = findTriplets( 3 , @sorted ) ; +if ( @result ) { + .say for @result ; +} +else { + say "No triplets this time!" ; +} diff --git a/challenge-051/ulrich-rieke/raku/ch-2.p6 b/challenge-051/ulrich-rieke/raku/ch-2.p6 new file mode 100644 index 0000000000..797a0a1c56 --- /dev/null +++ b/challenge-051/ulrich-rieke/raku/ch-2.p6 @@ -0,0 +1,16 @@ +use v6 ; + +sub isColourful( Int $n --> Bool ) { + my $numstr = $n.Str ; + my @products ; + if ( $numstr ~~ /(\d) (\d) (\d)/ ) { + @products.push( +$0 * +$1 , +$1 * +$2 , +$0 * +$1 * +$2 , +$0 , +$1 , +$2 , +$0 * +$2 ) ; + my $numberset = @products.Set ; + return $numberset.elems == 7 ; + } + else { + return False ; + } +} + +.say for (100..999).grep( { isColourful( $_ ) } ) ; diff --git a/stats/pwc-current.json b/stats/pwc-current.json index f1bd6c4678..0866e3734e 100644 --- a/stats/pwc-current.json +++ b/stats/pwc-current.json @@ -1,126 +1,130 @@ { - "title" : { - "text" : "Perl Weekly Challenge - 051" + "yAxis" : { + "title" : { + "text" : "Total Solutions" + } }, "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/>", - "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" }, - "yAxis" : { - "title" : { - "text" : "Total Solutions" - } - }, - "legend" : { - "enabled" : 0 - }, "plotOptions" : { "series" : { + "borderWidth" : 0, "dataLabels" : { "format" : "{point.y}", "enabled" : 1 - }, - "borderWidth" : 0 + } } }, + "legend" : { + "enabled" : 0 + }, + "subtitle" : { + "text" : "[Champions: 16] Last updated at 2020-03-10 21:15:45 GMT" + }, "chart" : { "type" : "column" }, + "title" : { + "text" : "Perl Weekly Challenge - 051" + }, "series" : [ { + "name" : "Perl Weekly Challenge - 051", + "colorByPoint" : 1, "data" : [ { "y" : 3, - "drilldown" : "Adam Russell", - "name" : "Adam Russell" + "name" : "Adam Russell", + "drilldown" : "Adam Russell" }, { + "name" : "Dave Cross", "drilldown" : "Dave Cross", - "y" : 2, - "name" : "Dave Cross" + "y" : 2 }, { + "drilldown" : "Dave Jacoby", "name" : "Dave Jacoby", - "y" : 2, - "drilldown" : "Dave Jacoby" + "y" : 2 }, { "name" : "E. Choroba", - "y" : 2, - "drilldown" : "E. Choroba" + "drilldown" : "E. Choroba", + "y" : 2 }, { + "y" : 5, "name" : "Javier Luque", - "drilldown" : "Javier Luque", - "y" : 5 + "drilldown" : "Javier Luque" }, { + "drilldown" : "Luca Ferrari", "name" : "Luca Ferrari", - "y" : 4, - "drilldown" : "Luca Ferrari" + "y" : 4 }, { - "y" : 2, "drilldown" : "Mark Anderson", - "name" : "Mark Anderson" + "name" : "Mark Anderson", + "y" : 2 }, { - "name" : "Markus Holzer", + "y" : 2, "drilldown" : "Markus Holzer", - "y" : 2 + "name" : "Markus Holzer" }, { + "y" : 5, "name" : "Mohammad S Anwar", - "drilldown" : "Mohammad S Anwar", - "y" : 5 + "drilldown" : "Mohammad S Anwar" }, { "y" : 1, - "drilldown" : "Phillip Harris", - "name" : "Phillip Harris" + "name" : "Phillip Harris", + "drilldown" : "Phillip Harris" }, { "y" : 4, - "drilldown" : "Roger Bell West", - "name" : "Roger Bell West" + "name" : "Roger Bell West", + "drilldown" : "Roger Bell West" }, { - "y" : 2, "drilldown" : "Simon Proctor", - "name" : "Simon Proctor" + "name" : "Simon Proctor", + "y" : 2 + }, + { + "y" : 4, + "name" : "Ulrich Rieke", + "drilldown" : "Ulrich Rieke" }, { "name" : "Walt Mankowski", - "y" : 2, - "drilldown" : "Walt Mankowski" + "drilldown" : "Walt Mankowski", + "y" : 2 }, { "drilldown" : "Wanderdoc", - "y" : 2, - "name" : "Wanderdoc" + "name" : "Wanderdoc", + "y" : 2 }, { - "name" : "Yet Ebreo", "drilldown" : "Yet Ebreo", + "name" : "Yet Ebreo", "y" : 2 } - ], - "colorByPoint" : 1, - "name" : "Perl Weekly Challenge - 051" + ] } ], - "subtitle" : { - "text" : "[Champions: 15] Last updated at 2020-03-10 20:59:21 GMT" - }, "drilldown" : { "series" : [ { "id" : "Adam Russell", - "name" : "Adam Russell", "data" : [ [ "Perl", @@ -130,27 +134,28 @@ "Blog", 1 ] - ] + ], + "name" : "Adam Russell" }, { + "name" : "Dave Cross", "data" : [ [ "Perl", 2 ] ], - "id" : "Dave Cross", - "name" : "Dave Cross" + "id" : "Dave Cross" }, { "name" : "Dave Jacoby", - "id" : "Dave Jacoby", "data" : [ [ "Perl", 2 ] - ] + ], + "id" : "Dave Jacoby" }, { "data" : [ @@ -163,8 +168,6 @@ "id" : "E. Choroba" }, { - "name" : "Javier Luque", - "id" : "Javier Luque", "data" : [ [ "Perl", @@ -178,11 +181,11 @@ "Blog", 1 ] - ] + ], + "name" : "Javier Luque", + "id" : "Javier Luque" }, { - "name" : "Luca Ferrari", - "id" : "Luca Ferrari", "data" : [ [ "Raku", @@ -192,7 +195,9 @@ "Blog", 2 ] - ] + ], + "name" : "Luca Ferrari", + "id" : "Luca Ferrari" }, { "data" : [ @@ -201,21 +206,20 @@ 2 ] ], - "id" : "Mark Anderson", - "name" : "Mark Anderson" + "name" : "Mark Anderson", + "id" : "Mark Anderson" }, { + "id" : "Markus Holzer", "data" : [ [ "Raku", 2 ] ], - "id" : "Markus Holzer", "name" : "Markus Holzer" }, { - "name" : "Mohammad S Anwar", "id" : "Mohammad S Anwar", "data" : [ [ @@ -230,21 +234,20 @@ "Blog", 1 ] - ] + ], + "name" : "Mohammad S Anwar" }, { "name" : "Phillip Harris", - "id" : "Phillip Harris", "data" : [ [ "Perl", 1 ] - ] + ], + "id" : "Phillip Harris" }, { - "id" : "Roger Bell West", - "name" : "Roger Bell West", "data" : [ [ "Perl", @@ -254,7 +257,9 @@ "Raku", 2 ] - ] + ], + "name" : "Roger Bell West", + "id" : "Roger Bell West" }, { "id" : "Simon Proctor", @@ -267,18 +272,32 @@ ] }, { + "name" : "Ulrich Rieke", "data" : [ [ "Perl", 2 + ], + [ + "Raku", + 2 ] ], + "id" : "Ulrich Rieke" + }, + { "id" : "Walt Mankowski", + "data" : [ + [ + "Perl", + 2 + ] + ], "name" : "Walt Mankowski" }, { - "name" : "Wanderdoc", "id" : "Wanderdoc", + "name" : "Wanderdoc", "data" : [ [ "Perl", @@ -293,8 +312,8 @@ 2 ] ], - "id" : "Yet Ebreo", - "name" : "Yet Ebreo" + "name" : "Yet Ebreo", + "id" : "Yet Ebreo" } ] } diff --git a/stats/pwc-language-breakdown-summary.json b/stats/pwc-language-breakdown-summary.json index 8d37d776e1..fa7fa9157c 100644 --- a/stats/pwc-language-breakdown-summary.json +++ b/stats/pwc-language-breakdown-summary.json @@ -1,27 +1,28 @@ { - "legend" : { - "enabled" : "false" - }, - "yAxis" : { - "min" : 0, - "title" : { - "text" : null - } - }, - "xAxis" : { - "type" : "category", - "labels" : { - "style" : { - "fontSize" : "13px", - "fontFamily" : "Verdana, sans-serif" - } - } + "chart" : { + "type" : "column" }, "subtitle" : { - "text" : "Last updated at 2020-03-10 20:59:21 GMT" + "text" : "Last updated at 2020-03-10 21:15:45 GMT" + }, + "title" : { + "text" : "Perl Weekly Challenge Contributions [2019 - 2020]" }, "series" : [ { + "name" : "Contributions", + "dataLabels" : { + "style" : { + "fontFamily" : "Verdana, sans-serif", + "fontSize" : "13px" + }, + "align" : "right", + "enabled" : "true", + "format" : "{point.y:.0f}", + "rotation" : -90, + "color" : "#FFFFFF", + "y" : 10 + }, "data" : [ [ "Blog", @@ -29,35 +30,34 @@ ], [ "Perl", - 2134 + 2136 ], [ "Raku", - 1302 + 1304 ] - ], - "dataLabels" : { - "enabled" : "true", - "format" : "{point.y:.0f}", - "color" : "#FFFFFF", - "rotation" : -90, - "y" : 10, - "align" : "right", - "style" : { - "fontFamily" : "Verdana, sans-serif", - "fontSize" : "13px" - } - }, - "name" : "Contributions" + ] } ], - "chart" : { - "type" : "column" - }, - "title" : { - "text" : "Perl Weekly Challenge Contributions [2019 - 2020]" + "yAxis" : { + "title" : { + "text" : null + }, + "min" : 0 }, "tooltip" : { "pointFormat" : "<b>{point.y:.0f}</b>" + }, + "xAxis" : { + "type" : "category", + "labels" : { + "style" : { + "fontFamily" : "Verdana, sans-serif", + "fontSize" : "13px" + } + } + }, + "legend" : { + "enabled" : "false" } } diff --git a/stats/pwc-language-breakdown.json b/stats/pwc-language-breakdown.json index 9b56abef61..71f3484b4c 100644 --- a/stats/pwc-language-breakdown.json +++ b/stats/pwc-language-breakdown.json @@ -1,31 +1,16 @@ { - "title" : { - "text" : "Perl Weekly Challenge Language" - }, - "tooltip" : { - "pointFormat" : "<span style=\"color:{point.color}\">Challenge {point.name}</span>: <b>{point.y:f}</b><br/>", - "headerFormat" : "<span style=\"font-size:11px\"></span>", - "followPointer" : "true" - }, - "yAxis" : { - "title" : { - "text" : "Total Solutions" - } - }, - "legend" : { - "enabled" : "false" - }, - "xAxis" : { - "type" : "category" + "chart" : { + "type" : "column" }, "subtitle" : { - "text" : "Click the columns to drilldown the language breakdown. Last updated at 2020-03-10 20:59:21 GMT" + "text" : "Click the columns to drilldown the language breakdown. Last updated at 2020-03-10 21:15:45 GMT" + }, + "title" : { + "text" : "Perl Weekly Challenge Language" }, "drilldown" : { "series" : [ { - "name" : "001", - "id" : "001", "data" : [ [ "Perl", @@ -39,9 +24,13 @@ "Blog", 11 ] - ] + ], + "name" : "001", + "id" : "001" }, { + "id" : "002", + "name" : "002", "data" : [ [ "Perl", @@ -55,11 +44,10 @@ "Blog", 10 ] - ], - "name" : "002", - "id" : "002" + ] }, { + "name" : "003", "data" : [ [ "Perl", @@ -74,8 +62,7 @@ 9 ] ], - "id" : "003", - "name" : "003" + "id" : "003" }, { "id" : "004", @@ -97,7 +84,6 @@ }, { "name" : "005", - "id" : "005", "data" : [ [ "Perl", @@ -111,9 +97,11 @@ "Blog", 12 ] - ] + ], + "id" : "005" }, { + "id" : "006", "data" : [ [ "Perl", @@ -128,12 +116,9 @@ 7 ] ], - "name" : "006", - "id" : "006" + "name" : "006" }, { - "name" : "007", - "id" : "007", "data" : [ [ "Perl", @@ -147,11 +132,11 @@ "Blog", 10 ] - ] + ], + "name" : "007", + "id" : "007" }, { - "id" : "008", - "name" : "008", "data" : [ [ "Perl", @@ -165,9 +150,12 @@ "Blog", 12 ] - ] + ], + "name" : "008", + "id" : "008" }, { + "id" : "009", "data" : [ [ "Perl", @@ -182,12 +170,10 @@ 13 ] ], - "name" : "009", - "id" : "009" + "name" : "009" }, { "name" : "010", - "id" : "010", "data" : [ [ "Perl", @@ -201,7 +187,8 @@ "Blog", 11 ] - ] + ], + "id" : "010" }, { "id" : "011", @@ -240,6 +227,7 @@ "id" : "012" }, { + "id" : "013", "data" : [ [ "Perl", @@ -254,12 +242,11 @@ 13 ] ], - "name" : "013", - "id" : "013" + "name" : "013" }, { - "name" : "014", "id" : "014", + "name" : "014", "data" : [ [ "Perl", @@ -276,6 +263,7 @@ ] }, { + "name" : "015", "data" : [ [ "Perl", @@ -290,12 +278,9 @@ 15 ] ], - "id" : "015", - "name" : "015" + "id" : "015" }, { - "id" : "016", - "name" : "016", "data" : [ [ "Perl", @@ -309,7 +294,9 @@ "Blog", 12 ] - ] + ], + "name" : "016", + "id" : "016" }, { "data" : [ @@ -344,10 +331,12 @@ 14 ] ], - "id" : "018", - "name" : "018" + "name" : "018", + "id" : "018" }, { + "id" : "019", + "name" : "019", "data" : [ [ "Perl", @@ -361,11 +350,10 @@ "Blog", 13 ] - ], - "id" : "019", - "name" : "019" + ] }, { + "name" : "020", "data" : [ [ "Perl", @@ -380,10 +368,11 @@ 13 ] ], - "name" : "020", "id" : "020" }, { + "id" : "021", + "name" : "021", "data" : [ [ "Perl", @@ -397,13 +386,9 @@ "Blog", 10 ] - ], - "name" : "021", - "id" : "021" + ] }, { - "id" : "022", - "name" : "022", "data" : [ [ "Perl", @@ -417,9 +402,12 @@ "Blog", 10 ] - ] + ], + "name" : "022", + "id" : "022" }, { + "name" : "023", "data" : [ [ "Perl", @@ -434,10 +422,10 @@ 12 ] ], - "name" : "023", "id" : "023" }, { + "id" : "024", "data" : [ [ "Perl", @@ -452,10 +440,10 @@ 11 ] ], - "name" : "024", - "id" : "024" + "name" : "024" }, { + "id" : "025", "data" : [ [ "Perl", @@ -470,10 +458,11 @@ 12 ] ], - "name" : "025", - "id" : "025" + "name" : "025" }, { + "id" : "026", + "name" : "026", "data" : [ [ "Perl", @@ -487,11 +476,11 @@ "Blog", 10 ] - ], - "id" : "026", - "name" : "026" + ] }, { + "id" : "027", + "name" : "027", "data" : [ [ "Perl", @@ -505,11 +494,11 @@ "Blog", 9 ] - ], - "name" : "027", - "id" : "027" + ] }, { + "id" : "028", + "name" : "028", "data" : [ [ "Perl", @@ -523,13 +512,10 @@ "Blog", 9 ] - ], - "name" : "028", - "id" : "028" + ] }, { "name" : "029", - "id" : "029", "data" : [ [ "Perl", @@ -543,9 +529,12 @@ "Blog", 12 ] - ] + ], + "id" : "029" }, { + "id" : "030", + "name" : "030", "data" : [ [ "Perl", @@ -559,13 +548,10 @@ "Blog", 10 ] - ], - "id" : "030", - "name" : "030" + ] }, { "id" : "031", - "name" : "031", "data" : [ [ "Perl", @@ -579,7 +565,8 @@ "Blog", 9 ] - ] + ], + "name" : "031" < |
