diff options
| author | Mohammad S Anwar <mohammad.anwar@yahoo.com> | 2021-06-30 13:13:55 +0100 |
|---|---|---|
| committer | Mohammad S Anwar <mohammad.anwar@yahoo.com> | 2021-06-30 13:13:55 +0100 |
| commit | 1023be8297556ff121ab12d0adca11fab9914ee0 (patch) | |
| tree | e5ada2e3d0d47f0bf6a83bec339775cfbc7cc3f2 | |
| parent | cedd7c3c1470e14f619aef8a3295044a8ce3b065 (diff) | |
| download | perlweeklychallenge-club-1023be8297556ff121ab12d0adca11fab9914ee0.tar.gz perlweeklychallenge-club-1023be8297556ff121ab12d0adca11fab9914ee0.tar.bz2 perlweeklychallenge-club-1023be8297556ff121ab12d0adca11fab9914ee0.zip | |
- Added solutions by Duane Powell.
| -rw-r--r-- | challenge-119/duane-powell/perl/ch-1.pl | 64 | ||||
| -rw-r--r-- | challenge-119/duane-powell/perl/ch-2.pl | 55 | ||||
| -rw-r--r-- | stats/pwc-current.json | 163 | ||||
| -rw-r--r-- | stats/pwc-language-breakdown-summary.json | 76 | ||||
| -rw-r--r-- | stats/pwc-language-breakdown.json | 1654 | ||||
| -rw-r--r-- | stats/pwc-leaders.json | 780 | ||||
| -rw-r--r-- | stats/pwc-summary-1-30.json | 110 | ||||
| -rw-r--r-- | stats/pwc-summary-121-150.json | 46 | ||||
| -rw-r--r-- | stats/pwc-summary-151-180.json | 50 | ||||
| -rw-r--r-- | stats/pwc-summary-181-210.json | 18 | ||||
| -rw-r--r-- | stats/pwc-summary-211-240.json | 62 | ||||
| -rw-r--r-- | stats/pwc-summary-31-60.json | 54 | ||||
| -rw-r--r-- | stats/pwc-summary-61-90.json | 106 | ||||
| -rw-r--r-- | stats/pwc-summary-91-120.json | 26 | ||||
| -rw-r--r-- | stats/pwc-summary.json | 494 |
15 files changed, 1946 insertions, 1812 deletions
diff --git a/challenge-119/duane-powell/perl/ch-1.pl b/challenge-119/duane-powell/perl/ch-1.pl new file mode 100644 index 0000000000..f0d0ecf19e --- /dev/null +++ b/challenge-119/duane-powell/perl/ch-1.pl @@ -0,0 +1,64 @@ +#!/usr/bin/perl +use warnings; +use strict; +use feature 'say'; + +# Problem: https://perlweeklychallenge.org/blog/perl-weekly-challenge-119/ TASK #1 +my $d = shift || 0; +my $f = BinaryFOO->new(); +say $f->nibble_swap($d); +exit; + +package BinaryFOO; +sub new { + return bless {}, shift; +} +sub dec_to_bin { + my $self = shift; + my $dec = shift; + return sprintf "%b", $dec; +} +sub bin_to_dec { + my $self = shift; + my $bin = shift; + return oct("0b".$bin); +} +sub is_palidrome { + my $self = shift; + my $bin = shift; + return ($bin eq reverse($bin)); +} +sub nibble_split { + my $self = shift; + my $bin = shift; + + # make sure we have an octet (8 char length minimum) + $bin = '0'x8 . $bin; + $bin = substr($bin,-8); + # split into 2 nibbles + return (substr($bin,0,4), substr($bin,-4)); +} +sub nibble_swap { + my $self = shift; + my $dec = shift; + return "$dec is greater than 255" if ($dec > 255); + my @n = $self->nibble_split($self->dec_to_bin($dec)); + return $self->bin_to_dec($n[1].$n[0]); +} +1; + +__END__ + +./ch-1.pl +0 +./ch-1.pl 101 +86 +./ch-1.pl 18 +33 +./ch-1.pl 255 +255 +./ch-1.pl 15 # 00001111 => 11110000 +240 +./ch-1.pl 240 +15 + diff --git a/challenge-119/duane-powell/perl/ch-2.pl b/challenge-119/duane-powell/perl/ch-2.pl new file mode 100644 index 0000000000..55a6f564d1 --- /dev/null +++ b/challenge-119/duane-powell/perl/ch-2.pl @@ -0,0 +1,55 @@ +#!/usr/bin/perl +use warnings; +use strict; +use feature 'say'; + +# Problem: https://perlweeklychallenge.org/blog/perl-weekly-challenge-119/ TASK #2 + +my $N = shift || 1; +$N = seq_without_1_on_1($N); +say $N; +exit; + +sub seq_without_1_on_1 { + my $N = shift; + + # init counter i, Nth in sequence n, and base4 number t + my ($i, $n, $t) = (1, 0, 1); + # loop until we reach the Nth number in the sequence + while ($n < $N) { + # base4 number can only be composed of the digits 0-3 + $t = base4($i++); + + # discard this number if it matches '0' or '11' + next if ($t =~ m/0|11/); + + $n++; + } + return $t +} + +sub base4 { + my $n = shift; + + return $n if ($n == 0 || $n == 1 || $n == 2 || $n == 3); + my $k = int($n/4); + my $b = $n % 4; + my $E = base4($k); + return $E . $b; +} + +__END__ + +./ch-2.pl 5 +13 +./ch-2.pl 10 +32 +./ch-2.pl 60 +2223 +./ch-2.pl 1223 +2222222 +./ch-2.pl 1929 +3333333 +./ch-2.pl 10000 +231233321 + diff --git a/stats/pwc-current.json b/stats/pwc-current.json index 20a0b108a3..ce0cae0cf0 100644 --- a/stats/pwc-current.json +++ b/stats/pwc-current.json @@ -1,118 +1,113 @@ { - "title" : { - "text" : "Perl Weekly Challenge - 119" - }, "legend" : { "enabled" : 0 }, - "yAxis" : { - "title" : { - "text" : "Total Solutions" - } - }, "series" : [ { + "name" : "Perl Weekly Challenge - 119", "colorByPoint" : 1, "data" : [ { - "name" : "Dave Cross", + "y" : 2, "drilldown" : "Dave Cross", - "y" : 2 + "name" : "Dave Cross" }, { + "drilldown" : "Dave Jacoby", "name" : "Dave Jacoby", - "y" : 3, - "drilldown" : "Dave Jacoby" + "y" : 3 + }, + { + "drilldown" : "Duane Powell", + "name" : "Duane Powell", + "y" : 2 }, { - "drilldown" : "E. Choroba", "y" : 2, + "drilldown" : "E. Choroba", "name" : "E. Choroba" }, { - "drilldown" : "Flavio Poletti", "y" : 6, - "name" : "Flavio Poletti" + "name" : "Flavio Poletti", + "drilldown" : "Flavio Poletti" }, { - "drilldown" : "James Smith", "y" : 3, + "drilldown" : "James Smith", "name" : "James Smith" }, { + "drilldown" : "Luca Ferrari", "name" : "Luca Ferrari", - "y" : 4, - "drilldown" : "Luca Ferrari" + "y" : 4 }, { - "drilldown" : "Mark Anderson", "y" : 2, + "drilldown" : "Mark Anderson", "name" : "Mark Anderson" }, { - "y" : 2, + "name" : "Paulo Custodio", "drilldown" : "Paulo Custodio", - "name" : "Paulo Custodio" + "y" : 2 }, { - "drilldown" : "Roger Bell_West", "y" : 4, + "drilldown" : "Roger Bell_West", "name" : "Roger Bell_West" }, { - "name" : "Simon Green", + "y" : 3, "drilldown" : "Simon Green", - "y" : 3 + "name" : "Simon Green" }, { - "y" : 2, "drilldown" : "Simon Proctor", - "name" : "Simon Proctor" + "name" : "Simon Proctor", + "y" : 2 }, { - "drilldown" : "Steven Wilson", "y" : 2, + "drilldown" : "Steven Wilson", "name" : "Steven Wilson" }, { - "y" : 4, "drilldown" : "Stuart Little", - "name" : "Stuart Little" + "name" : "Stuart Little", + "y" : 4 }, { - "name" : "Ulrich Rieke", "drilldown" : "Ulrich Rieke", + "name" : "Ulrich Rieke", "y" : 4 }, { - "drilldown" : "Vinod Kumar K", "y" : 1, - "name" : "Vinod Kumar K" + "name" : "Vinod Kumar K", + "drilldown" : "Vinod Kumar K" }, { - "y" : 3, + "name" : "W. Luis Mochan", "drilldown" : "W. Luis Mochan", - "name" : "W. Luis Mochan" + "y" : 3 } - ], - "name" : "Perl Weekly Challenge - 119" + ] } ], - "subtitle" : { - "text" : "[Champions: 16] Last updated at 2021-06-30 11:24:36 GMT" + "chart" : { + "type" : "column" }, - "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 - 119" }, "plotOptions" : { "series" : { - "borderWidth" : 0, "dataLabels" : { - "enabled" : 1, - "format" : "{point.y}" - } + "format" : "{point.y}", + "enabled" : 1 + }, + "borderWidth" : 0 } }, "drilldown" : { @@ -128,6 +123,8 @@ "id" : "Dave Cross" }, { + "id" : "Dave Jacoby", + "name" : "Dave Jacoby", "data" : [ [ "Perl", @@ -137,22 +134,29 @@ "Blog", 1 ] - ], - "name" : "Dave Jacoby", - "id" : "Dave Jacoby" + ] }, { + "id" : "Duane Powell", + "name" : "Duane Powell", "data" : [ [ "Perl", 2 ] - ], + ] + }, + { "name" : "E. Choroba", - "id" : "E. Choroba" + "id" : "E. Choroba", + "data" : [ + [ + "Perl", + 2 + ] + ] }, { - "name" : "Flavio Poletti", "data" : [ [ "Perl", @@ -167,11 +171,10 @@ 2 ] ], + "name" : "Flavio Poletti", "id" : "Flavio Poletti" }, { - "id" : "James Smith", - "name" : "James Smith", "data" : [ [ "Perl", @@ -181,10 +184,13 @@ "Blog", 1 ] - ] + ], + "id" : "James Smith", + "name" : "James Smith" }, { "name" : "Luca Ferrari", + "id" : "Luca Ferrari", "data" : [ [ "Raku", @@ -194,28 +200,27 @@ "Blog", 2 ] - ], - "id" : "Luca Ferrari" + ] }, { + "id" : "Mark Anderson", + "name" : "Mark Anderson", "data" : [ [ "Raku", 2 ] - ], - "name" : "Mark Anderson", - "id" : "Mark Anderson" + ] }, { - "id" : "Paulo Custodio", "data" : [ [ "Perl", 2 ] ], - "name" : "Paulo Custodio" + "name" : "Paulo Custodio", + "id" : "Paulo Custodio" }, { "data" : [ @@ -232,7 +237,6 @@ "id" : "Roger Bell_West" }, { - "name" : "Simon Green", "data" : [ [ "Perl", @@ -243,30 +247,30 @@ 1 ] ], - "id" : "Simon Green" + "id" : "Simon Green", + "name" : "Simon Green" }, { + "id" : "Simon Proctor", "name" : "Simon Proctor", "data" : [ [ "Raku", 2 ] - ], - "id" : "Simon Proctor" + ] }, { + "id" : "Steven Wilson", "name" : "Steven Wilson", "data" : [ [ "Perl", 2 ] - ], - "id" : "Steven Wilson" + ] }, { - "id" : "Stuart Little", "data" : [ [ "Perl", @@ -277,6 +281,7 @@ 2 ] ], + "id" : "Stuart Little", "name" : "Stuart Little" }, { @@ -294,17 +299,16 @@ "id" : "Ulrich Rieke" }, { - "id" : "Vinod Kumar K", "data" : [ [ "Perl", 1 ] ], - "name" : "Vinod Kumar K" + "name" : "Vinod Kumar K", + "id" : "Vinod Kumar K" }, { - "id" : "W. Luis Mochan", "data" : [ [ "Perl", @@ -315,6 +319,7 @@ 1 ] ], + "id" : "W. Luis Mochan", "name" : "W. Luis Mochan" } ] @@ -322,7 +327,17 @@ "xAxis" : { "type" : "category" }, - "chart" : { - "type" : "column" + "subtitle" : { + "text" : "[Champions: 17] Last updated at 2021-06-30 12:13:32 GMT" + }, + "tooltip" : { + "followPointer" : 1, + "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/>" + }, + "yAxis" : { + "title" : { + "text" : "Total Solutions" + } } } diff --git a/stats/pwc-language-breakdown-summary.json b/stats/pwc-language-breakdown-summary.json index 0069ac0a71..5deb9c217c 100644 --- a/stats/pwc-language-breakdown-summary.json +++ b/stats/pwc-language-breakdown-summary.json @@ -1,15 +1,45 @@ { - "title" : { - "text" : "Perl Weekly Challenge Contributions [2019 - 2020]" + "yAxis" : { + "title" : { + "text" : null + }, + "min" : 0 }, - "legend" : { - "enabled" : "false" + "tooltip" : { + "pointFormat" : "<b>{point.y:.0f}</b>" + }, + "subtitle" : { + "text" : "Last updated at 2021-06-30 12:13:32 GMT" + }, + "xAxis" : { + "labels" : { + "style" : { + "fontSize" : "13px", + "fontFamily" : "Verdana, sans-serif" + } + }, + "type" : "category" }, "chart" : { "type" : "column" }, + "legend" : { + "enabled" : "false" + }, "series" : [ { + "dataLabels" : { + "enabled" : "true", + "rotation" : -90, + "style" : { + "fontFamily" : "Verdana, sans-serif", + "fontSize" : "13px" + }, + "y" : 10, + "align" : "right", + "format" : "{point.y:.0f}", + "color" : "#FFFFFF" + }, "data" : [ [ "Blog", @@ -17,47 +47,17 @@ ], [ "Perl", - 5641 + 5643 ], [ "Raku", 3553 ] ], - "name" : "Contributions", - "dataLabels" : { - "y" : 10, - "align" : "right", - "color" : "#FFFFFF", - "format" : "{point.y:.0f}", - "style" : { - "fontFamily" : "Verdana, sans-serif", - "fontSize" : "13px" - }, - "enabled" : "true", - "rotation" : -90 - } + "name" : "Contributions" } ], - "subtitle" : { - "text" : "Last updated at 2021-06-30 11:24:36 GMT" - }, - "tooltip" : { - "pointFormat" : "<b>{point.y:.0f}</b>" - }, - "yAxis" : { - "title" : { - "text" : null - }, - "min" : 0 - }, - "xAxis" : { - "type" : "category", - "labels" : { - "style" : { - "fontFamily" : "Verdana, sans-serif", - "fontSize" : "13px" - } - } + "title" : { + "text" : "Perl Weekly Challenge Contributions [2019 - 2020]" } } diff --git a/stats/pwc-language-breakdown.json b/stats/pwc-language-breakdown.json index 4709a6d106..91a768164d 100644 --- a/stats/pwc-language-breakdown.json +++ b/stats/pwc-language-breakdown.json @@ -1,629 +1,4 @@ { - "yAxis" : { - "title" : { - "text" : "Total Solutions" - } - }, - "series" : [ - { - "colorByPoint" : "true", - "data" : [ - { - "name" : "#001", - "y" : 161, - "drilldown" : "001" - }, - { - "y" : 125, - "drilldown" : "002", - "name" : "#002" - }, - { - "y" : 81, - "drilldown" : "003", - "name" : "#003" - }, - { - "y" : 99, - "drilldown" : "004", - "name" : "#004" - }, - { - "y" : 78, - "drilldown" : "005", - "name" : "#005" - }, - { - "drilldown" : "006", - "y" : 58, - "name" : "#006" - }, - { - "name" : "#007", - "y" : 64, - "drilldown" : "007" - }, - { - "y" : 78, - "drilldown" : "008", - "name" : "#008" - }, - { - "name" : "#009", - "y" : 76, - "drilldown" : "009" - }, - { - "name" : "#010", - "drilldown" : "010", - "y" : 65 - }, - { - "drilldown" : "011", - "y" : 85, - "name" : "#011" - }, - { - "drilldown" : "012", - "y" : 89, - "name" : "#012" - }, - { - "name" : "#013", - "drilldown" : "013", - "y" : 85 - }, - { - "y" : 101, - "drilldown" : "014", - "name" : "#014" - }, - { - "name" : "#015", - "y" : 99, - "drilldown" : "015" - }, - { - "drilldown" : "016", - "y" : 71, - "name" : "#016" - }, - { - "drilldown" : "017", - "y" : 84, - "name" : "#017" - }, - { - "name" : "#018", - "drilldown" : "018", - "y" : 81 - }, - { - "drilldown" : "019", - "y" : 103, - "name" : "#019" - }, - { - "y" : 101, - "drilldown" : "020", - "name" : "#020" - }, - { - "name" : "#021", - "drilldown" : "021", - "y" : 72 - }, - { - "name" : "#022", - "y" : 68, - "drilldown" : "022" - }, - { - "y" : 97, - "drilldown" : "023", - "name" : "#023" - }, - { - "drilldown" : "024", - "y" : 74, - "name" : "#024" - }, - { - "name" : "#025", - "y" : 59, - "drilldown" : "025" - }, - { - "drilldown" : "026", - "y" : 74, - "name" : "#026" - }, - { - "y" : 60, - "drilldown" : "027", - "name" : "#027" - }, - { - "drilldown" : "028", - "y" : 80, - "name" : "#028" - }, - { - "name" : "#029", - "y" : 79, - "drilldown" : "029" - }, - { - "y" : 117, - "drilldown" : "030", - "name" : "#030" - }, - { - "name" : "#031", - "y" : 89, - "drilldown" : "031" - }, - { - "y" : 94, - "drilldown" : "032", - "name" : "#032" - }, - { - "y" : 110, - "drilldown" : "033", - "name" : "#033" - }, - { - "name" : "#034", - "y" : 64, - "drilldown" : "034" - }, - { - "name" : "#035", - "drilldown" : "035", - "y" : 64 - }, - { - "drilldown" : "036", - "y" : 68, - "name" : "#036" - }, - { - "drilldown" : "037", - "y" : 67, - "name" : "#037" - }, - { - "drilldown" : "038", - "y" : 68, - "name" : "#038" - }, - { - "drilldown" : "039", - "y" : 62, - "name" : "#039" - }, - { - "drilldown" : "040", - "y" : 73, - "name" : "#040" - }, - { - "drilldown" : "041", - "y" : 76, - "name" : "#041" - }, - { - "name" : "#042", - "y" : 92, - "drilldown" : "042" - }, - { - "name" : "#043", - "y" : 68, - "drilldown" : "043" - }, - { - "name" : "#044", - "drilldown" : "044", - "y" : 85 - }, - { - "name" : "#045", - "drilldown" : "045", - "y" : 96 - }, - { - "drilldown" : "046", - "y" : 87, - "name" : "#046" - }, - { - "drilldown" : "047", - "y" : 84, - "name" : "#047" - }, - { - "name" : "#048", - "y" : 108, - "drilldown" : "048" - }, - { - "name" : "#049", - "y" : 89, - "drilldown" : "049" - }, - { - "y" : 98, - "drilldown" : "050", - "name" : "#050" - }, - { - "drilldown" : "051", - "y" : 89, - "name" : "#051" - }, - { - "name" : "#052", - "drilldown" : "052", - "y" : 91 - }, - { - "y" : 101, - "drilldown" : "053", - "name" : "#053" - }, - { - "y" : 103, - "drilldown" : "054", - "name" : "#054" - }, - { - "y" : 88, - "drilldown" : "055", - "name" : "#055" - }, - { - "name" : "#056", - "drilldown" : "056", - "y" : 95 - }, - { - "y" : 80, - "drilldown" : "057", - "name" : "#057" - }, - { - "y" : 69, - "drilldown" : "058", - "name" : "#058" - }, - { - "y" : 89, - "drilldown" : "059", - "name" : "#059" - }, - { - "drilldown" : "060", - "y" : 85, - "name" : "#060" - }, - { - "name" : "#061", - "drilldown" : "061", - "y" : 81 - }, - { - "name" : "#062", - "drilldown" : "062", - "y" : 58 - }, - { - "drilldown" : "063", - "y" : 89, - "name" : "#063" - }, - { - "drilldown" : "064", - "y" : 80, - "name" : "#064" - }, - { - "name" : "#065", - "y" : 73, - "drilldown" : "065" - }, - { - "name" : "#066", - "y" : 84, - "drilldown" : "066" - }, - { - "y" : 90, - "drilldown" : "067", - "name" : "#067" - }, - { - "name" : "#068", - "y" : 75, - "drilldown" : "068" - }, - { - "name" : "#069", - "y" : 83, - "drilldown" : "069" - }, - { - "name" : "#070", - "drilldown" : "070", - "y" : 93 - }, - { - "y" : 78, - "drilldown" : "071", - "name" : "#071" - }, - { - "y" : 112, - "drilldown" : "072", - "name" : "#072" - }, - { - "y" : 110, - "drilldown" : "073", - "name" : "#073" - }, - { - "drilldown" : "074", - "y" : 115, - "name" : "#074" - }, - { - "drilldown" : "075", - "y" : 113, - "name" : "#075" - }, - { - "name" : "#076", - "drilldown" : "076", - "y" : 99 - }, - { - "drilldown" : "077", - "y" : 98, - "name" : "#077" - }, - { - "name" : "#078", - "y" : 127, - "drilldown" : "078" - }, - { - "y" : 122, - "drilldown" : "079", - "name" : "#079" - }, - { - "drilldown" : "080", - "y" : 127, - "name" : "#080" - }, - { - "name" : "#081", - "drilldown" : "081", - "y" : 114 - }, - { - "drilldown" : "082", - "y" : 114, - "name" : "#082" - }, - { - "name" : "#083", - "drilldown" : "083", - "y" : 127 - }, - { - "y" : 119, - "drilldown" : "084", - "name" : "#084" - }, - { - "drilldown" : "085", - "y" : 114, - "name" : "#085" - }, - { - "y" : 104, - "drilldown" : "086", - "name" : "#086" - }, - { - "y" : 101, - "drilldown" : "087", - "name" : "#087" - }, - { - "drilldown" : "088", - "y" : 121, - "name" : "#088" - }, - { - "y" : 113, - "drilldown" : "089", - "name" : "#089" - }, - { - "drilldown" : "090", - "y" : 113, - "name" : "#090" - }, - { - "y" : 108, - "drilldown" : "091", - "name" : "#091" - }, - { - "drilldown" : "092", - "y" : 98, - "name" : "#092" - }, - { - "name" : "#093", - "y" : 87, - "drilldown" : "093" - }, - { - "y" : 87, - "drilldown" : "094", - "name" : "#094" - }, - { - "y" : 108, - "drilldown" : "095", - "name" |
