diff options
| author | Mohammad S Anwar <mohammad.anwar@yahoo.com> | 2019-11-07 11:23:13 +0000 |
|---|---|---|
| committer | Mohammad S Anwar <mohammad.anwar@yahoo.com> | 2019-11-07 11:23:13 +0000 |
| commit | 077136ec73aae2a5caaa07be59af5dc39633231a (patch) | |
| tree | e7140080ebb98396986fec00742c4535eb4f71c9 | |
| parent | 5e04beca5f1b6b3fdcc80b6dc0d7e88cdb4942d1 (diff) | |
| download | perlweeklychallenge-club-077136ec73aae2a5caaa07be59af5dc39633231a.tar.gz perlweeklychallenge-club-077136ec73aae2a5caaa07be59af5dc39633231a.tar.bz2 perlweeklychallenge-club-077136ec73aae2a5caaa07be59af5dc39633231a.zip | |
- Added solutions by Darren Bottin.
| -rw-r--r-- | challenge-033/darren-bottin/perl5/ch-1.pl | 19 | ||||
| -rw-r--r-- | challenge-033/darren-bottin/perl5/ch-2.pl | 49 | ||||
| -rw-r--r-- | challenge-033/darren-bottin/perl5/sample.txt | 1 | ||||
| -rw-r--r-- | stats/pwc-current.json | 161 | ||||
| -rw-r--r-- | stats/pwc-language-breakdown-summary.json | 48 | ||||
| -rw-r--r-- | stats/pwc-language-breakdown.json | 248 | ||||
| -rw-r--r-- | stats/pwc-leaders.json | 474 | ||||
| -rw-r--r-- | stats/pwc-summary-1-30.json | 122 | ||||
| -rw-r--r-- | stats/pwc-summary-121-150.json | 28 | ||||
| -rw-r--r-- | stats/pwc-summary-31-60.json | 46 | ||||
| -rw-r--r-- | stats/pwc-summary-61-90.json | 116 | ||||
| -rw-r--r-- | stats/pwc-summary-91-120.json | 42 | ||||
| -rw-r--r-- | stats/pwc-summary.json | 48 |
13 files changed, 743 insertions, 659 deletions
diff --git a/challenge-033/darren-bottin/perl5/ch-1.pl b/challenge-033/darren-bottin/perl5/ch-1.pl new file mode 100644 index 0000000000..aeeadd2bff --- /dev/null +++ b/challenge-033/darren-bottin/perl5/ch-1.pl @@ -0,0 +1,19 @@ +#!perl
+use strict;
+my @file_list = @ARGV;
+@file_list = 'sample.txt' unless @file_list;
+my %letter_freq;
+
+for my $IN_FILE (@file_list) {
+ open (my $INH, '<', $IN_FILE); #Force mode to reduce ARGV mischief
+ while (my $line = <$INH> ) {
+ my @line_letters = split ('', lc($line));
+ $letter_freq{$_}++ foreach @line_letters;
+ }
+}
+
+my @used = sort keys %letter_freq;
+for my $a_letter (@used) {
+ next unless $a_letter ge 'a' and $a_letter le 'z';
+ print "$a_letter: ".$letter_freq{$a_letter}."\n";
+}
diff --git a/challenge-033/darren-bottin/perl5/ch-2.pl b/challenge-033/darren-bottin/perl5/ch-2.pl new file mode 100644 index 0000000000..59a37bffa0 --- /dev/null +++ b/challenge-033/darren-bottin/perl5/ch-2.pl @@ -0,0 +1,49 @@ +#!perl
+use strict;
+
+my $bound = $ARGV[0] || 11;
+
+my $usage = "Usage: $0 \{Table width as a positive integer}";
+die $usage unless $bound >0;
+die $usage unless $bound =~ m/^\d*$/; #complain for non digits
+
+my @bounds = (1..$bound);
+my @col_widths = dynamic_widths($bound);
+my $width_used = -$col_widths[0]-1;
+$width_used += $_ +1 foreach @col_widths;
+
+my $v = '|';
+print left_pad($col_widths[0], 'x'.$v,@bounds)."\n"; #Top line
+print '-' x ($col_widths[0]-1). '+'. '-' x $width_used."\n";
+
+for my $x (@bounds) {
+ my $col_width = $col_widths[$x];
+ my @results = ($x.$v); # First column has (v)ert separator appended
+ for my $y ( @bounds) {
+ $results[$y] = $x * $y if $x <= $y;
+ }
+ print left_pad($col_width, @results)."\n";
+}
+
+sub val_char_width($) {
+ return -int(-2*log(shift) / log(10))+1;
+}
+
+sub dynamic_widths($) {
+ my $bound = shift;
+ my @widths = val_char_width($bound);
+ for my $i ( 1..$bound) {
+ push @widths, val_char_width($i);
+ }
+ return @widths;
+}
+
+sub left_pad($@) {
+ my ($width, @values) = @_;
+ my @line;
+ for my $width (@col_widths) {
+ my $this_val = shift @values;
+ push @line, sprintf("%${width}s",$this_val);
+ }
+ return join(' ',@line);
+}
diff --git a/challenge-033/darren-bottin/perl5/sample.txt b/challenge-033/darren-bottin/perl5/sample.txt new file mode 100644 index 0000000000..8fe2a4b5ad --- /dev/null +++ b/challenge-033/darren-bottin/perl5/sample.txt @@ -0,0 +1 @@ +The quick brown fox jumps over the lazy dog.
\ No newline at end of file diff --git a/stats/pwc-current.json b/stats/pwc-current.json index 4850d00325..b94ea17189 100644 --- a/stats/pwc-current.json +++ b/stats/pwc-current.json @@ -1,66 +1,74 @@ { - "chart" : { - "type" : "column" - }, "title" : { "text" : "Perl Weekly Challenge - 033" }, - "yAxis" : { - "title" : { - "text" : "Total Solutions" + "plotOptions" : { + "series" : { + "dataLabels" : { + "enabled" : 1, + "format" : "{point.y}" + }, + "borderWidth" : 0 } }, - "legend" : { - "enabled" : 0 - }, - "xAxis" : { - "type" : "category" + "subtitle" : { + "text" : "[Champions: 15] Last updated at 2019-11-07 11:22:59 GMT" }, "drilldown" : { "series" : [ { - "name" : "Andrezgz", - "id" : "Andrezgz", "data" : [ [ "Perl 5", 2 ] - ] + ], + "name" : "Andrezgz", + "id" : "Andrezgz" }, { - "name" : "Bruce Van Allen", "data" : [ [ "Perl 5", 2 ] ], - "id" : "Bruce Van Allen" + "id" : "Bruce Van Allen", + "name" : "Bruce Van Allen" }, { - "name" : "Daniel Mita", "data" : [ [ "Perl 6", 1 ] ], + "name" : "Daniel Mita", "id" : "Daniel Mita" }, { + "id" : "Darren Bottin", + "name" : "Darren Bottin", "data" : [ [ "Perl 5", 2 ] - ], + ] + }, + { + "name" : "Dave Cross", "id" : "Dave Cross", - "name" : "Dave Cross" + "data" : [ + [ + "Perl 5", + 2 + ] + ] }, { - "name" : "Dr James A. Smith", "id" : "Dr James A. Smith", + "name" : "Dr James A. Smith", "data" : [ [ "Perl 5", @@ -69,16 +77,17 @@ ] }, { + "id" : "Duane Powell", + "name" : "Duane Powell", "data" : [ [ "Perl 5", 2 ] - ], - "id" : "Duane Powell", - "name" : "Duane Powell" + ] }, { + "id" : "Javier Luque", "name" : "Javier Luque", "data" : [ [ @@ -93,30 +102,31 @@ "Blog", 1 ] - ], - "id" : "Javier Luque" + ] }, { - "id" : "Nazareno Delucca", "data" : [ [ "Perl 5", 2 ] ], + "id" : "Nazareno Delucca", "name" : "Nazareno Delucca" }, { - "name" : "Petr Roubicek", - "id" : "Petr Roubicek", "data" : [ [ "Perl 5", 2 ] - ] + ], + "id" : "Petr Roubicek", + "name" : "Petr Roubicek" }, { + "name" : "Roger Bell West", + "id" : "Roger Bell West", "data" : [ [ "Perl 5", @@ -126,13 +136,11 @@ "Perl 6", 2 ] - ], - "id" : "Roger Bell West", - "name" : "Roger Bell West" + ] }, { - "name" : "Ruben Westerberg", "id" : "Ruben Westerberg", + "name" : "Ruben Westerberg", "data" : [ [ "Perl 5", @@ -156,17 +164,17 @@ }, { "id" : "Steven Wilson", + "name" : "Steven Wilson", "data" : [ [ "Perl 5", 2 ] - ], - "name" : "Steven Wilson" + ] }, { - "name" : "Ulrich Rieke", "id" : "Ulrich Rieke", + "name" : "Ulrich Rieke", "data" : [ [ "Perl 5", @@ -180,25 +188,16 @@ } ] }, - "plotOptions" : { - "series" : { - "borderWidth" : 0, - "dataLabels" : { - "enabled" : 1, - "format" : "{point.y}" - } - } - }, - "tooltip" : { - "headerFormat" : "<span style='font-size:11px'>{series.name}</span><br/>", - "followPointer" : 1, - "pointFormat" : "<span style='color:{point.color}'>{point.name}</span>: <b>{point.y:f}</b><br/>" + "legend" : { + "enabled" : 0 }, - "subtitle" : { - "text" : "[Champions: 14] Last updated at 2019-11-06 13:08:46 GMT" + "chart" : { + "type" : "column" }, "series" : [ { + "name" : "Perl Weekly Challenge - 033", + "colorByPoint" : 1, "data" : [ { "y" : 2, @@ -206,24 +205,29 @@ "drilldown" : "Andrezgz" }, { + "drilldown" : "Bruce Van Allen", "y" : 2, - "name" : "Bruce Van Allen", - "drilldown" : "Bruce Van Allen" + "name" : "Bruce Van Allen" }, { - "drilldown" : "Daniel Mita", + "name" : "Daniel Mita", "y" : 1, - "name" : "Daniel Mita" + "drilldown" : "Daniel Mita" + }, + { + "drilldown" : "Darren Bottin", + "y" : 2, + "name" : "Darren Bottin" }, { + "drilldown" : "Dave Cross", "y" : 2, - "name" : "Dave Cross", - "drilldown" : "Dave Cross" + "name" : "Dave Cross" }, { - "name" : "Dr James A. Smith", + "drilldown" : "Dr James A. Smith", "y" : 2, - "drilldown" : "Dr James A. Smith" + "name" : "Dr James A. Smith" }, { "drilldown" : "Duane Powell", @@ -231,14 +235,14 @@ "name" : "Duane Powell" }, { - "name" : "Javier Luque", + "drilldown" : "Javier Luque", "y" : 5, - "drilldown" : "Javier Luque" + "name" : "Javier Luque" }, { - "drilldown" : "Nazareno Delucca", "name" : "Nazareno Delucca", - "y" : 2 + "y" : 2, + "drilldown" : "Nazareno Delucca" }, { "y" : 2, @@ -251,28 +255,39 @@ "drilldown" : "Roger Bell West" }, { - "name" : "Ruben Westerberg", "y" : 4, + "name" : "Ruben Westerberg", "drilldown" : "Ruben Westerberg" }, { - "drilldown" : "Simon Proctor", "name" : "Simon Proctor", - "y" : 2 + "y" : 2, + "drilldown" : "Simon Proctor" }, { - "drilldown" : "Steven Wilson", "name" : "Steven Wilson", - "y" : 2 + "y" : 2, + "drilldown" : "Steven Wilson" }, { - "y" : 4, "name" : "Ulrich Rieke", + "y" : 4, "drilldown" : "Ulrich Rieke" } - ], - "name" : "Perl Weekly Challenge - 033", - "colorByPoint" : 1 + ] + } + ], + "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 + }, + "xAxis" : { + "type" : "category" + }, + "yAxis" : { + "title" : { + "text" : "Total Solutions" } - ] + } } diff --git a/stats/pwc-language-breakdown-summary.json b/stats/pwc-language-breakdown-summary.json index fa4f3b3dd9..8145a804da 100644 --- a/stats/pwc-language-breakdown-summary.json +++ b/stats/pwc-language-breakdown-summary.json @@ -1,19 +1,6 @@ { - "tooltip" : { - "pointFormat" : "<b>{point.y:.0f}</b>" - }, - "xAxis" : { - "type" : "category", - "labels" : { - "style" : { - "fontSize" : "13px", - "fontFamily" : "Verdana, sans-serif" - } - } - }, "series" : [ { - "name" : "Contributions", "data" : [ [ "Blog", @@ -21,7 +8,7 @@ ], [ "Perl 5", - 1385 + 1387 ], [ "Perl 6", @@ -29,21 +16,31 @@ ] ], "dataLabels" : { - "enabled" : "true", "format" : "{point.y:.0f}", - "color" : "#FFFFFF", - "align" : "right", - "rotation" : -90, "style" : { "fontFamily" : "Verdana, sans-serif", "fontSize" : "13px" }, - "y" : 10 - } + "y" : 10, + "color" : "#FFFFFF", + "align" : "right", + "enabled" : "true", + "rotation" : -90 + }, + "name" : "Contributions" } ], - "legend" : { - "enabled" : "false" + "xAxis" : { + "labels" : { + "style" : { + "fontSize" : "13px", + "fontFamily" : "Verdana, sans-serif" + } + }, + "type" : "category" + }, + "subtitle" : { + "text" : "Last updated at 2019-11-07 11:23:07 GMT" }, "yAxis" : { "title" : { @@ -51,13 +48,16 @@ }, "min" : 0 }, + "legend" : { + "enabled" : "false" + }, "chart" : { "type" : "column" }, "title" : { "text" : "Perl Weekly Challenge Contributions - 2019" }, - "subtitle" : { - "text" : "Last updated at 2019-11-06 13:09:05 GMT" + "tooltip" : { + "pointFormat" : "<b>{point.y:.0f}</b>" } } diff --git a/stats/pwc-language-breakdown.json b/stats/pwc-language-breakdown.json index 9e0ba56003..8b83c84815 100644 --- a/stats/pwc-language-breakdown.json +++ b/stats/pwc-language-breakdown.json @@ -1,4 +1,35 @@ { + "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" + }, + "chart" : { + "type" : "column" + }, + "yAxis" : { + "title" : { + "text" : "Total Solutions" + } + }, + "legend" : { + "enabled" : "false" + }, + "subtitle" : { + "text" : "Click the columns to drilldown the language breakdown. Last updated at 2019-11-07 11:23:07 GMT" + }, + "plotOptions" : { + "series" : { + "borderWidth" : 0, + "dataLabels" : { + "enabled" : 1, + "format" : "{point.y}" + } + } + }, "drilldown" : { "series" : [ { @@ -39,7 +70,6 @@ }, { "id" : "003", - "name" : "003", "data" : [ [ "Perl 5", @@ -53,9 +83,11 @@ "Blog", 9 ] - ] + ], + "name" : "003" }, { + "id" : "004", "data" : [ [ "Perl 5", @@ -70,8 +102,7 @@ 9 ] ], - "name" : "004", - "id" : "004" + "name" : "004" }, { "id" : "005", @@ -92,7 +123,6 @@ "name" : "005" }, { - "id" : "006", "name" : "006", "data" : [ [ @@ -107,7 +137,8 @@ "Blog", 7 ] - ] + ], + "id" : "006" }, { "name" : "007", @@ -128,7 +159,6 @@ "id" : "007" }, { - "name" : "008", "data" : [ [ "Perl 5", @@ -143,11 +173,11 @@ 12 ] ], - "id" : "008" + "id" : "008", + "name" : "008" }, { "id" : "009", - "name" : "009", "data" : [ [ "Perl 5", @@ -161,7 +191,8 @@ "Blog", 13 ] - ] + ], + "name" : "009" }, { "id" : "010", @@ -182,8 +213,6 @@ "name" : "010" }, { - "id" : "011", - "name" : "011", "data" : [ [ "Perl 5", @@ -197,10 +226,11 @@ "Blog", 9 ] - ] + ], + "id" : "011", + "name" : "011" }, { - "id" : "012", "data" : [ [ "Perl 5", @@ -215,10 +245,11 @@ 11 ] ], + "id" : "012", "name" : "012" }, { - "id" : "013", + "name" : "013", "data" : [ [ "Perl 5", @@ -233,10 +264,9 @@ 13 ] ], - "name" : "013" + "id" : "013" }, { - "name" : "014", "data" : [ [ "Perl 5", @@ -251,9 +281,12 @@ 15 ] ], - "id" : "014" + "id" : "014", + "name" : "014" }, { + "name" : "015", + "id" : "015", "data" : [ [ "Perl 5", @@ -267,12 +300,9 @@ "Blog", 15 ] - ], - "name" : "015", - "id" : "015" + ] }, { - "id" : "016", "name" : "016", "data" : [ [ @@ -287,11 +317,12 @@ "Blog", 12 ] - ] + ], + "id" : "016" }, { - "id" : "017", "name" : "017", + "id" : "017", "data" : [ [ "Perl 5", @@ -308,7 +339,6 @@ ] }, { - "id" : "018", "data" : [ [ "Perl 5", @@ -323,10 +353,11 @@ 14 ] ], + "id" : "018", "name" : "018" }, { - "id" : "019", + "name" : "019", "data" : [ [ "Perl 5", @@ -341,10 +372,9 @@ 13 ] ], - "name" : "019" + "id" : "019" }, { - "name" : "020", "data" : [ [ "Perl 5", @@ -359,10 +389,10 @@ 13 ] ], - "id" : "020" + "id" : "020", + "name" : "020" }, { - "id" : "021", "name" : "021", "data" : [ [ @@ -377,11 +407,11 @@ "Blog", 10 ] - ] + ], + "id" : "021" }, { "id" : "022", - "name" : "022", "data" : [ [ "Perl 5", @@ -395,7 +425,8 @@ "Blog", 10 ] - ] + ], + "name" : "022" }, { "data" : [ @@ -412,10 +443,11 @@ 12 ] ], - "name" : "023", - "id" : "023" + "id" : "023", + "name" : "023" }, { + "id" : "024", "data" : [ [ "Perl 5", @@ -430,11 +462,10 @@ 11 ] ], - "name" : "024", - "id" : "024" + "name" : "024" }, { - "id" : "025", + "name" : "025", "data" : [ [ "Perl 5", @@ -449,11 +480,10 @@ 12 ] ], - "name" : "025" + "id" : "025" }, { "id" : "026", - "name" : "026", "data" : [ [ "Perl 5", @@ -467,11 +497,12 @@ "Blog", 10 ] - ] + ], + "name" : "026" }, { - "id" : "027", "name" : "027", + "id" : "027", "data" : [ [ "Perl 5", @@ -489,7 +520,6 @@ }, { "id" : "028", - "name" : "028", "data" : [ [ "Perl 5", @@ -503,11 +533,12 @@ "Blog", 9 ] - ] + ], + "name" : "028" }, { - "id" : "029", "name" : "029", + "id" : "029", "data" : [ [ "Perl 5", @@ -542,8 +573,8 @@ "id" : "030" }, { - "id" : "031", "name" : "031", + "id" : "031", "data" : [ [ "Perl 5", @@ -560,6 +591,7 @@ ] }, { + "name" : "032", "data" : [ [ "Perl 5", @@ -574,7 +606,6 @@ 8 ] ], - "name" : "032", "id" : "032" }, { @@ -582,7 +613,7 @@ "data" : [ [ "Perl 5", - 24 + 26 ], [ "Perl 6", @@ -597,25 +628,18 @@ } ] }, - "subtitle" : { - "text" : "Click the columns to drilldown the language breakdown. Last updated at 2019-11-06 13:09:05 GMT" - }, - "title" : { - "text" : "Perl Weekly Challenge Language" - }, "series" : [ { - "name" : "Perl Weekly Challenge Languages", "data" : [ { + "name" : "#001", "drilldown" : "001", - "y" : 132, - "name" : "#001" + "y" : 132 }, { + "name" : "#002", "drilldown" : "002", - "y" : 104, - "name" : "#002" + "y" : 104 }, { "drilldown" : "003", @@ -623,28 +647,28 @@ "name" : "#003" }, { - "drilldown" : "004", "y" : 86, + "drilldown" : "004", "name" : "#004" }, { - "name" : "#005", + "y" : 66, "drilldown" : "005", - "y" : 66 + "name" : "#005" }, { - "name" : "#006", "drilldown" : "006", - "y" : 48 + "y" : 48, + "name" : "#006" }, { + "name" : "#007", "y" : 56, - "drilldown" : "007", - "name" : "#007" + "drilldown" : "007" }, { - "drilldown" : "008", "y" : 70, + "drilldown" : "008", "name" : "#008" }, { @@ -653,9 +677,9 @@ "drilldown" : "009" }, { - "drilldown" : "010", + "name" : "#010", "y" : 60, - "name" : "#010" + "drilldown" : "010" }, { "name" : "#011", @@ -674,18 +698,18 @@ }, { "name" : "#014", - "y" : 96, - "drilldown" : "014" + "drilldown" : "014", + "y" : 96 }, { - "name" : "#015", "y" : 93, - "drilldown" : "015" + "drilldown" : "015", + "name" : "#015" }, { + "name" : "#016", "drilldown" : "016", - "y" : 66, - "name" : "#016" + "y" : 66 }, { "name" : "#017", @@ -693,24 +717,24 @@ "y" : 79 }, { - "y" : 76, + "name" : "#018", "drilldown" : "018", - "name" : "#018" + "y" : 76 }, { - "y" : 95, + "name" : "#019", "drilldown" : "019", - "name" : "#019" + "y" : 95 }, { "name" : "#020", - "drilldown" : "020", - "y" : 95 + "y" : 95, + "drilldown" : "020" }, { - "name" : "#021", "y" : 67, - "drilldown" : "021" + "drilldown" : "021", + "name" : "#021" }, { "name" : "#022", @@ -723,9 +747,9 @@ "name" : "#023" }, { + "name" : "#024", "y" : 70, - "drilldown" : "024", - "name" : "#024" + "drilldown" : "024" }, { "drilldown" : "025", @@ -733,75 +757,51 @@ "name" : "#025" }, { - "y" : 70, + "name" : "#026", "drilldown" : "026", - "name" : "#026" + "y" : 70 }, { "name" : "#027", - "y" : 58, - "drilldown" : "027" + "drilldown" : "027", + "y" : 58 }, { "name" : "#028", - "y" : 78, - "drilldown" : "028" + "drilldown" : "028", + "y" : 78 }, { - "name" : "#029", "y" : 77, - "drilldown" : "029" + "drilldown" : "029", + "name" : "#029" }, { "name" : "#030", - "drilldown" : "030", - "y" : 115 + "y" : 115, + "drilldown" : "030" }, { - "y" : 87, "drilldown" : "031", + "y" : 87, "name" : "#031" }, { - "drilldown" : "032", + "name" : "#032", "y" : 90, - "name" : "#032" + "drilldown" : "032" }, { - "y" : 36, + "y" : 38, "drilldown" : "033", "name" : "#033" } ], + "name" : "Perl Weekly Challenge Languages", "colorByPoint" : |
