diff options
| author | Mohammad S Anwar <mohammad.anwar@yahoo.com> | 2020-03-09 15:22:05 +0000 |
|---|---|---|
| committer | Mohammad S Anwar <mohammad.anwar@yahoo.com> | 2020-03-09 15:22:05 +0000 |
| commit | fbda56ae08d50daa1ac443cbf05a5bd3decfc9cd (patch) | |
| tree | 1908690ca10c8f5784204b27e0dfb1c0b9a38ed8 | |
| parent | 1beef9bc72451c7b7b2d428b559fa9d9188acbac (diff) | |
| download | perlweeklychallenge-club-fbda56ae08d50daa1ac443cbf05a5bd3decfc9cd.tar.gz perlweeklychallenge-club-fbda56ae08d50daa1ac443cbf05a5bd3decfc9cd.tar.bz2 perlweeklychallenge-club-fbda56ae08d50daa1ac443cbf05a5bd3decfc9cd.zip | |
- Added solutions by Wanderdoc.
| -rw-r--r-- | challenge-051/wanderdoc/perl/ch-1.pl | 69 | ||||
| -rw-r--r-- | challenge-051/wanderdoc/perl/ch-2.pl | 65 | ||||
| -rw-r--r-- | stats/pwc-current.json | 97 | ||||
| -rw-r--r-- | stats/pwc-language-breakdown-summary.json | 42 | ||||
| -rw-r--r-- | stats/pwc-language-breakdown.json | 394 | ||||
| -rw-r--r-- | stats/pwc-leaders.json | 766 | ||||
| -rw-r--r-- | stats/pwc-summary-1-30.json | 106 | ||||
| -rw-r--r-- | stats/pwc-summary-121-150.json | 50 | ||||
| -rw-r--r-- | stats/pwc-summary-151-180.json | 34 | ||||
| -rw-r--r-- | stats/pwc-summary-31-60.json | 122 | ||||
| -rw-r--r-- | stats/pwc-summary-61-90.json | 44 | ||||
| -rw-r--r-- | stats/pwc-summary-91-120.json | 98 | ||||
| -rw-r--r-- | stats/pwc-summary.json | 52 |
13 files changed, 1044 insertions, 895 deletions
diff --git a/challenge-051/wanderdoc/perl/ch-1.pl b/challenge-051/wanderdoc/perl/ch-1.pl new file mode 100644 index 0000000000..aeeabe31ba --- /dev/null +++ b/challenge-051/wanderdoc/perl/ch-1.pl @@ -0,0 +1,69 @@ +#!perl +use strict; +use warnings FATAL => qw(all); + +=prompt +Given an array @L of integers. Write a script to find all unique triplets such that a + b + c is same as the given target T. Also make sure a <= b <= c. +Example: @L = (-25, -10, -7, -3, 2, 4, 8, 10); +One such triplet for target 0 i.e. -10 + 2 + 8 = 0. +=cut + + + + +my @L = (-25, -10, -7, -3, 2, 4, 8, 10); +my $target = 0; + +my @triplets = find_triplets(\@L, $target); +print_result(@triplets); + + +sub find_triplets +{ + my @arr = sort { $a <=> $b } @{$_[0]}; + my $t = $_[1]; + my @result; + + for my $pt1 ( 0 .. $#arr ) + { + next if $pt1 > 0 and $arr[$pt1] == $arr[$pt1 - 1]; + my $pt2 = $pt1 + 1; + my $pt3 = $#arr; + while ( $pt2 < $pt3 ) + { + if ( $arr[$pt1] + $arr[$pt2] + $arr[$pt3] == $t ) + { + push @result, [$arr[$pt1], $arr[$pt2], $arr[$pt3]]; + $pt2++; + } + + + elsif ( $arr[$pt1] + $arr[$pt2] + $arr[$pt3] < $t ) + { + $pt2++; + } + else + { + $pt3--; + } + + } + } + return @result; +} + +sub print_result +{ + my @arr = @_; + + if ( 0 == @arr ) + { + print "No elements!\n"; + } + + else + { + print join(" ", @$_), $/ for @arr; + + } +}
\ No newline at end of file diff --git a/challenge-051/wanderdoc/perl/ch-2.pl b/challenge-051/wanderdoc/perl/ch-2.pl new file mode 100644 index 0000000000..aa0b102f8e --- /dev/null +++ b/challenge-051/wanderdoc/perl/ch-2.pl @@ -0,0 +1,65 @@ +#!perl +use strict; +use warnings FATAL => qw(all); + +=prompt +Write a script to display all Colorful Number with 3 digits. +A number can be declare Colorful Number where all the products of consecutive subsets of digit are different. +For example, 263 is a Colorful Number since 2, 6, 3, 2x6, 6x3, 2x6x3 are unique. +=cut + +use List::Util qw(reduce uniq); + + + +my %DEBUG_STORE; + +sub prod_con_subsets +{ + my $num = $_[0]; + my $len = length($num); + my @set; + for my $width (1 .. $len) + { + for my $pos ( 0 .. $len ) + { + + my $chunk = substr($num, $pos, $width); + if ( length($chunk) == $width ) + { + push @set, $chunk; + } + } + } + + my @products = _products(@set); + $DEBUG_STORE{$num} = [@products]; + return @products; +} + + +sub _products +{ + my @arr = @_; + + my @products = map {my $el = $_; + my $res = length($el) == 1 ? $el : + reduce{$a * $b} split(//,$el)} @arr; + return @products; + +} + +sub is_colorful +{ + my $num = $_[0]; + my @arr = prod_con_subsets($num); + return scalar @arr == scalar uniq @arr; +} + +my $counter; +for my $num ( 100 .. 999 ) +{ + next if $num =~ /[01]/; # cannot be colorful if contains 0 or 1. + print "The Nr.", ++$counter, ' is ', $num, '; Proof: ', join(" ", @{$DEBUG_STORE{$num}}), $/ if is_colorful($num); + +}
\ No newline at end of file diff --git a/stats/pwc-current.json b/stats/pwc-current.json index e92b16fe66..af20b8216d 100644 --- a/stats/pwc-current.json +++ b/stats/pwc-current.json @@ -1,37 +1,12 @@ { - "xAxis" : { - "type" : "category" - }, - "yAxis" : { - "title" : { - "text" : "Total Solutions" - } - }, - "chart" : { - "type" : "column" - }, - "title" : { - "text" : "Perl Weekly Challenge - 051" - }, - "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/>" + "subtitle" : { + "text" : "[Champions: 6] Last updated at 2020-03-09 15:21:43 GMT" }, "drilldown" : { "series" : [ { - "id" : "Dave Cross", "name" : "Dave Cross", + "id" : "Dave Cross", "data" : [ [ "Perl", @@ -40,6 +15,7 @@ ] }, { + "name" : "Javier Luque", "data" : [ [ "Perl", @@ -54,7 +30,6 @@ 1 ] ], - "name" : "Javier Luque", "id" : "Javier Luque" }, { @@ -68,35 +43,48 @@ 2 ] ], - "name" : "Roger Bell West", - "id" : "Roger Bell West" + "id" : "Roger Bell West", + "name" : "Roger Bell West" }, { - "name" : "Simon Proctor", "id" : "Simon Proctor", "data" : [ [ "Raku", 2 ] - ] + ], + "name" : "Simon Proctor" }, { + "name" : "Wanderdoc", + "id" : "Wanderdoc", "data" : [ [ "Perl", 2 ] - ], + ] + }, + { + "name" : "Yet Ebreo", "id" : "Yet Ebreo", - "name" : "Yet Ebreo" + "data" : [ + [ + "Perl", + 2 + ] + ] } ] }, + "chart" : { + "type" : "column" + }, "series" : [ { - "name" : "Perl Weekly Challenge - 051", "colorByPoint" : 1, + "name" : "Perl Weekly Challenge - 051", "data" : [ { "drilldown" : "Dave Cross", @@ -105,12 +93,12 @@ }, { "drilldown" : "Javier Luque", - "name" : "Javier Luque", - "y" : 5 + "y" : 5, + "name" : "Javier Luque" }, { - "y" : 4, "name" : "Roger Bell West", + "y" : 4, "drilldown" : "Roger Bell West" }, { @@ -119,6 +107,11 @@ "drilldown" : "Simon Proctor" }, { + "name" : "Wanderdoc", + "y" : 2, + "drilldown" : "Wanderdoc" + }, + { "drilldown" : "Yet Ebreo", "y" : 2, "name" : "Yet Ebreo" @@ -129,7 +122,29 @@ "legend" : { "enabled" : 0 }, - "subtitle" : { - "text" : "[Champions: 5] Last updated at 2020-03-09 11:14:03 GMT" + "title" : { + "text" : "Perl Weekly Challenge - 051" + }, + "yAxis" : { + "title" : { + "text" : "Total Solutions" + } + }, + "xAxis" : { + "type" : "category" + }, + "plotOptions" : { + "series" : { + "dataLabels" : { + "format" : "{point.y}", + "enabled" : 1 + }, + "borderWidth" : 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/>" } } diff --git a/stats/pwc-language-breakdown-summary.json b/stats/pwc-language-breakdown-summary.json index 6d9eb64806..fd558641ec 100644 --- a/stats/pwc-language-breakdown-summary.json +++ b/stats/pwc-language-breakdown-summary.json @@ -1,41 +1,32 @@ { - "chart" : { - "type" : "column" + "subtitle" : { + "text" : "Last updated at 2020-03-09 15:21:43 GMT" }, "title" : { "text" : "Perl Weekly Challenge Contributions [2019 - 2020]" }, - "xAxis" : { - "type" : "category", - "labels" : { - "style" : { - "fontSize" : "13px", - "fontFamily" : "Verdana, sans-serif" - } - } - }, "yAxis" : { "min" : 0, "title" : { "text" : null } }, - "subtitle" : { - "text" : "Last updated at 2020-03-09 11:14:03 GMT" + "chart" : { + "type" : "column" }, "series" : [ { "dataLabels" : { - "color" : "#FFFFFF", - "rotation" : -90, - "y" : 10, - "enabled" : "true", "style" : { - "fontSize" : "13px", - "fontFamily" : "Verdana, sans-serif" + "fontFamily" : "Verdana, sans-serif", + "fontSize" : "13px" }, "align" : "right", - "format" : "{point.y:.0f}" + "rotation" : -90, + "y" : 10, + "format" : "{point.y:.0f}", + "color" : "#FFFFFF", + "enabled" : "true" }, "name" : "Contributions", "data" : [ @@ -45,7 +36,7 @@ ], [ "Perl", - 2115 + 2117 ], [ "Raku", @@ -57,6 +48,15 @@ "legend" : { "enabled" : "false" }, + "xAxis" : { + "type" : "category", + "labels" : { + "style" : { + "fontSize" : "13px", + "fontFamily" : "Verdana, sans-serif" + } + } + }, "tooltip" : { "pointFormat" : "<b>{point.y:.0f}</b>" } diff --git a/stats/pwc-language-breakdown.json b/stats/pwc-language-breakdown.json index adce92fdad..9bbd004a6a 100644 --- a/stats/pwc-language-breakdown.json +++ b/stats/pwc-language-breakdown.json @@ -1,9 +1,6 @@ { - "subtitle" : { - "text" : "Click the columns to drilldown the language breakdown. Last updated at 2020-03-09 11:14:03 GMT" - }, - "legend" : { - "enabled" : "false" + "chart" : { + "type" : "column" }, "series" : [ { @@ -14,14 +11,14 @@ "name" : "#001" }, { - "drilldown" : "002", + "name" : "#002", "y" : 109, - "name" : "#002" + "drilldown" : "002" }, { + "drilldown" : "003", "name" : "#003", - "y" : 71, - "drilldown" : "003" + "y" : 71 }, { "y" : 91, @@ -34,14 +31,14 @@ "drilldown" : "005" }, { - "drilldown" : "006", + "name" : "#006", "y" : 52, - "name" : "#006" + "drilldown" : "006" }, { "drilldown" : "007", - "y" : 58, - "name" : "#007" + "name" : "#007", + "y" : 58 }, { "y" : 70, @@ -49,14 +46,14 @@ "drilldown" : "008" }, { + "drilldown" : "009", "y" : 68, - "name" : "#009", - "drilldown" : "009" + "name" : "#009" }, { - "drilldown" : "010", + "name" : "#010", "y" : 60, - "name" : "#010" + "drilldown" : "010" }, { "drilldown" : "011", @@ -65,43 +62,43 @@ }, { "drilldown" : "012", - "name" : "#012", - "y" : 83 + "y" : 83, + "name" : "#012" }, { - "name" : "#013", + "drilldown" : "013", "y" : 76, - "drilldown" : "013" + "name" : "#013" }, { - "drilldown" : "014", "name" : "#014", - "y" : 96 + "y" : 96, + "drilldown" : "014" }, { - "y" : 93, "name" : "#015", + "y" : 93, "drilldown" : "015" }, { - "name" : "#016", "y" : 66, + "name" : "#016", "drilldown" : "016" }, { + "drilldown" : "017", "y" : 79, - "name" : "#017", - "drilldown" : "017" + "name" : "#017" }, { "drilldown" : "018", - "name" : "#018", - "y" : 76 + "y" : 76, + "name" : "#018" }, { - "name" : "#019", + "drilldown" : "019", "y" : 95, - "drilldown" : "019" + "name" : "#019" }, { "drilldown" : "020", @@ -109,9 +106,9 @@ "y" : 95 }, { - "y" : 67, + "drilldown" : "021", "name" : "#021", - "drilldown" : "021" + "y" : 67 }, { "drilldown" : "022", @@ -119,38 +116,38 @@ "y" : 63 }, { + "drilldown" : "023", "name" : "#023", - "y" : 91, - "drilldown" : "023" + "y" : 91 }, { - "drilldown" : "024", "name" : "#024", - "y" : 70 + "y" : 70, + "drilldown" : "024" }, { "drilldown" : "025", - "y" : 55, - "name" : "#025" + "name" : "#025", + "y" : 55 }, { + "drilldown" : "026", "name" : "#026", - "y" : 70, - "drilldown" : "026" + "y" : 70 }, { "drilldown" : "027", - "name" : "#027", - "y" : 58 + "y" : 58, + "name" : "#027" }, { + "drilldown" : "028", "name" : "#028", - "y" : 78, - "drilldown" : "028" + "y" : 78 }, { - "y" : 77, "name" : "#029", + "y" : 77, "drilldown" : "029" }, { @@ -159,79 +156,79 @@ "drilldown" : "030" }, { - "drilldown" : "031", + "y" : 87, "name" : "#031", - "y" : 87 + "drilldown" : "031" }, { + "drilldown" : "032", "name" : "#032", - "y" : 92, - "drilldown" : "032" + "y" : 92 }, { - "drilldown" : "033", "name" : "#033", - "y" : 108 + "y" : 108, + "drilldown" : "033" }, { - "drilldown" : "034", "name" : "#034", - "y" : 62 + "y" : 62, + "drilldown" : "034" }, { - "drilldown" : "035", "y" : 62, - "name" : "#035" + "name" : "#035", + "drilldown" : "035" }, { - "name" : "#036", + "drilldown" : "036", "y" : 63, - "drilldown" : "036" + "name" : "#036" }, { + "drilldown" : "037", "y" : 63, - "name" : "#037", - "drilldown" : "037" + "name" : "#037" }, { - "y" : 65, + "drilldown" : "038", "name" : "#038", - "drilldown" : "038" + "y" : 65 }, { "drilldown" : "039", - "y" : 60, - "name" : "#039" + "name" : "#039", + "y" : 60 }, { - "name" : "#040", + "drilldown" : "040", "y" : 66, - "drilldown" : "040" + "name" : "#040" }, { + "drilldown" : "041", "name" : "#041", - "y" : 69, - "drilldown" : "041" + "y" : 69 }, { - "name" : "#042", "y" : 88, + "name" : "#042", "drilldown" : "042" }, { - "name" : "#043", "y" : 65, + "name" : "#043", "drilldown" : "043" }, { - "name" : "#044", "y" : 81, + "name" : "#044", "drilldown" : "044" }, { - "drilldown" : "045", + "name" : "#045", "y" : 94, - "name" : "#045" + "drilldown" : "045" }, { "drilldown" : "046", @@ -239,35 +236,49 @@ "y" : 83 }, { - "name" : "#047", "y" : 81, + "name" : "#047", "drilldown" : "047" }, { + "drilldown" : "048", "name" : "#048", - "y" : 105, - "drilldown" : "048" + "y" : 105 }, { - "drilldown" : "049", "name" : "#049", - "y" : 80 + "y" : 80, + "drilldown" : "049" }, { - "y" : 90, + "drilldown" : "050", "name" : "#050", - "drilldown" : "050" + "y" : 90 }, { - "drilldown" : "051", - "y" : 15, - "name" : "#051" + "name" : "#051", + "y" : 17, + "drilldown" : "051" } ], - "name" : "Perl Weekly Challenge Languages", - "colorByPoint" : "true" + "colorByPoint" : "true", + "name" : "Perl Weekly Challenge Languages" } ], + "legend" : { + "enabled" : "false" + }, + "yAxis" : { + "title" : { + "text" : "Total Solutions" + } + }, + "title" : { + "text" : "Perl Weekly Challenge Language" + }, + "subtitle" : { + "text" : "Click the columns to drilldown the language breakdown. Last updated at 2020-03-09 15:21:43 GMT" + }, "drilldown" : { "series" : [ { @@ -289,6 +300,7 @@ ] }, { + "id" : "002", "data" : [ [ "Perl", @@ -303,10 +315,10 @@ 10 ] ], - "name" : "002", - "id" : "002" + "name" : "002" }, { + "id" : "003", "data" : [ [ "Perl", @@ -321,12 +333,9 @@ 9 ] ], - "name" : "003", - "id" : "003" + "name" : "003" }, { - "name" : "004", - "id" : "004", "data" : [ [ "Perl", @@ -340,9 +349,12 @@ "Blog", 10 ] - ] + ], + "id" : "004", + "name" : "004" }, { + "id" : "005", "data" : [ [ "Perl", @@ -357,8 +369,7 @@ 12 ] ], - "name" : "005", - "id" : "005" + "name" : "005" }, { "name" : "006", @@ -393,10 +404,11 @@ 10 ] ], - "name" : "007", - "id" : "007" + "id" : "007", + "name" : "007" }, { + "id" : "008", "data" : [ [ "Perl", @@ -411,11 +423,9 @@ 12 ] ], - "id" : "008", "name" : "008" }, { - "name" : "009", "id" : "009", "data" : [ [ @@ -430,7 +440,8 @@ "Blog", 13 ] - ] + ], + "name" : "009" }, { "data" : [ @@ -447,11 +458,10 @@ 11 ] ], - "name" : "010", - "id" : "010" + "id" : "010", + "name" : "010" }, { - "id" : "011", "name" : "011", "data" : [ [ @@ -466,9 +476,11 @@ "Blog", 10 ] - ] + ], + "id" : "011" }, { + "id" : "012", "data" : [ [ "Perl", @@ -483,10 +495,10 @@ 11 ] ], - "id" : "012", "name" : "012" }, { + "id" : "013", "data" : [ [ "Perl", @@ -501,12 +513,9 @@ 13 ] ], - "name" : "013", - "id" : "013" + "name" : "013" }, { - "name" : "014", - "id" : "014", "data" : [ [ "Perl", @@ -520,9 +529,12 @@ "Blog", 15 ] - ] + ], + "id" : "014", + "name" : "014" }, { + "id" : "015", "data" : [ [ "Perl", @@ -537,10 +549,11 @@ 15 ] ], - "name" : "015", - "id" : "015" + "name" : "015" }, { + "name" : "016", + "id" : "016", "data" : [ [ "Perl", @@ -554,9 +567,7 @@ "Blog", 12 ] - ], - "name" : "016", - "id" : "016" + ] }, { "name" : "017", @@ -577,8 +588,6 @@ ] }, { - "id" : "018", - "name" : "018", "data" : [ [ "Perl", @@ -592,10 +601,11 @@ "Blog", 14 ] - ] + ], + "id" : "018", + "name" : "018" }, { - "id" : "019", "name" : "019", "data" : [ [ @@ -610,9 +620,11 @@ "Blog", 13 ] - ] + ], + "id" : "019" }, { + "id" : "020", "data" : [ [ "Perl", @@ -627,10 +639,11 @@ 13 ] ], - "name" : "020", - "id" : "020" + "name" : "020" }, { + "name" : "021", + "id" : "021", "data" : [ [ "Perl", @@ -644,11 +657,11 @@ "Blog", 10 ] - ], - "name" : "021", - "id" : "021" + ] }, { + "name" : "022", + "id" : "022", "data" : [ [ "Perl", @@ -662,13 +675,10 @@ "Blog", 10 ] - ], - "name" : "022", - "id" : "022" + ] }, { "id" : "023", - "name" : "023", "data" : [ [ "Perl", @@ -682,10 +692,10 @@ "Blog", 12 ] - ] + ], + "name" : "023" }, { - "name" : "024", "id" : "024", "data" : [ [ @@ -700,11 +710,10 @@ "Blog", 11 ] - ] + ], + "name" : "024" }, { - "name" : "025", - "id" : "025", "data" : [ [ "Perl", @@ -718,7 +727,9 @@ "Blog", 12 ] - ] + ], + "id" : "025", + "name" : "025" }, { "data" : [ @@ -753,8 +764,8 @@ 9 ] ], - "name" : "027", - "id" : "027" + "id" : "027", + "name" : "027" }, { "data" : [ @@ -771,10 +782,11 @@ 9 ] ], - "name" : "028", - "id" : "028" + "id" : "028", + "name" : "028" }, { + "id" : "029", "data" : [ [ "Perl", @@ -789,10 +801,10 @@ 12 ] ], - "id" : "029", "name" : "029" }, { + "id" : "030", "data" : [ [ "Perl", @@ -807,12 +819,10 @@ 10 ] ], - "name" : "030", - "id" : "030" + "name" : "030" }, { "id" : "031", - "name" : "031", "data" : [ [ "Perl", @@ -826,7 +836,8 @@ "Blog", 9 ] - ] + ], + "name" : "031" }, { "data" : [ @@ -847,6 +858,8 @@ "name" : "032" }, |
