From f035783d130995c470a1c9349934ff84af5bc840 Mon Sep 17 00:00:00 2001 From: Mohammad S Anwar Date: Mon, 17 Aug 2020 06:06:08 +0100 Subject: - Added solutions in Perl, Raku and Swift. --- challenge-074/mohammad-anwar/perl/ch-1.pl | 52 + challenge-074/mohammad-anwar/perl/ch-1.t | 49 + challenge-074/mohammad-anwar/perl/ch-2.pl | 44 + challenge-074/mohammad-anwar/perl/ch-2.t | 55 + challenge-074/mohammad-anwar/raku/ch-1.raku | 36 + challenge-074/mohammad-anwar/raku/ch-1.t | 36 + challenge-074/mohammad-anwar/raku/ch-2.raku | 45 + challenge-074/mohammad-anwar/raku/ch-2.t | 46 + challenge-074/mohammad-anwar/swift/ch-1.swift | 96 + challenge-074/mohammad-anwar/swift/ch-2.swift | 89 + stats/pwc-current.json | 85 +- stats/pwc-language-breakdown-summary.json | 64 +- stats/pwc-language-breakdown.json | 2928 ++++++++++++------------- stats/pwc-leaders.json | 392 ++-- stats/pwc-summary-1-30.json | 44 +- stats/pwc-summary-121-150.json | 110 +- stats/pwc-summary-151-180.json | 92 +- stats/pwc-summary-181-210.json | 54 +- stats/pwc-summary-31-60.json | 58 +- stats/pwc-summary-61-90.json | 22 +- stats/pwc-summary-91-120.json | 118 +- stats/pwc-summary.json | 402 ++-- 22 files changed, 2742 insertions(+), 2175 deletions(-) create mode 100755 challenge-074/mohammad-anwar/perl/ch-1.pl create mode 100755 challenge-074/mohammad-anwar/perl/ch-1.t create mode 100755 challenge-074/mohammad-anwar/perl/ch-2.pl create mode 100755 challenge-074/mohammad-anwar/perl/ch-2.t create mode 100755 challenge-074/mohammad-anwar/raku/ch-1.raku create mode 100755 challenge-074/mohammad-anwar/raku/ch-1.t create mode 100755 challenge-074/mohammad-anwar/raku/ch-2.raku create mode 100755 challenge-074/mohammad-anwar/raku/ch-2.t create mode 100755 challenge-074/mohammad-anwar/swift/ch-1.swift create mode 100755 challenge-074/mohammad-anwar/swift/ch-2.swift diff --git a/challenge-074/mohammad-anwar/perl/ch-1.pl b/challenge-074/mohammad-anwar/perl/ch-1.pl new file mode 100755 index 0000000000..470ad84154 --- /dev/null +++ b/challenge-074/mohammad-anwar/perl/ch-1.pl @@ -0,0 +1,52 @@ +#!/usr/bin/perl + +# +# Perl Weekly Challenge - 074 +# +# Task #1: Majority Element +# +# https://perlweeklychallenge.org/blog/perl-weekly-challenge-074 +# + +use strict; +use warnings; +use POSIX qw(floor); + +print find_majority_element(prepare_list($ARGV[0])), "\n"; + +# +# +# METHODS + +sub find_majority_element { + my ($list) = @_; + + die "ERROR: Missing list.\n" unless defined $list; + die "ERROR: Invalid list [$list].\n" unless (ref($list) eq 'ARRAY'); + + print "List: ", join(", ", @$list), "\n"; + my $mid_point = floor(($#$list + 1) / 2); + my %elements = (); + $elements{$_}++ foreach (@$list); + + my $top = (sort { $elements{$b} <=> $elements{$a} } + keys %elements)[0]; + + ($elements{$top} >= $mid_point) + ? + (return $top) + : + (return -1); +} + +sub prepare_list { + my ($list) = @_; + + if (defined $list) { + $list =~ s/\s//g; + return [ split /\,/, $list ]; + } + else { + return [1, 2, 2, 3, 2, 4, 2]; + } +} diff --git a/challenge-074/mohammad-anwar/perl/ch-1.t b/challenge-074/mohammad-anwar/perl/ch-1.t new file mode 100755 index 0000000000..91a893c3f0 --- /dev/null +++ b/challenge-074/mohammad-anwar/perl/ch-1.t @@ -0,0 +1,49 @@ +#!/usr/bin/perl + +# +# Perl Weekly Challenge - 074 +# +# Task #1: Majority Element +# +# https://perlweeklychallenge.org/blog/perl-weekly-challenge-074 +# + +package MajorityElement; + +use Moo; +use POSIX qw(floor); + +sub find_majority_element { + my ($self, $list) = @_; + + die "ERROR: Missing list.\n" unless defined $list; + die "ERROR: Invalid list [$list].\n" unless (ref($list) eq 'ARRAY'); + + print "List: ", join(", ", @$list), "\n"; + my $mid_point = floor(($#$list + 1) / 2); + my %elements = (); + $elements{$_}++ foreach (@$list); + + my $top = (sort { $elements{$b} <=> $elements{$a} } + keys %elements)[0]; + + ($elements{$top} >= $mid_point) + ? + (return $top) + : + (return -1); +} + +package main; + +use strict; +use warnings; + +use Test2::V0 -target => 'MajorityElement'; + +can_ok($CLASS, 'find_majority_element'); +isa_ok($CLASS, 'MajorityElement'); +is($CLASS->find_majority_element([1, 2, 2, 3, 2, 4, 2]), 2, 'example 1'); +is($CLASS->find_majority_element([1, 3, 1, 2, 4, 5]), -1, 'example 2'); + +done_testing; diff --git a/challenge-074/mohammad-anwar/perl/ch-2.pl b/challenge-074/mohammad-anwar/perl/ch-2.pl new file mode 100755 index 0000000000..a153afcfe2 --- /dev/null +++ b/challenge-074/mohammad-anwar/perl/ch-2.pl @@ -0,0 +1,44 @@ +#!/usr/bin/perl + +# +# Perl Weekly Challenge - 074 +# +# Task #2: FNR Character +# +# https://perlweeklychallenge.org/blog/perl-weekly-challenge-074 +# + +use strict; +use warnings; + +my $S = $ARGV[0] || 'ababc'; + +print join "\n", (join ' => ', $S, fnr_character($S)), ''; + +sub fnr_character { + my ($string) = @_; + + my @fnr = (); + foreach my $i (0 .. length($string) - 1) { + my $s = substr($string, 0, $i + 1); + if (length($s) == 1) { + push @fnr, $s; + } + else { + my $found = 0; + my %count = (); + + $count{$_}++ for split //, $s; + foreach (split //, reverse $s) { + if ($count{$_} == 1) { + push @fnr, $_; + $found = 1; + last; + } + } + push @fnr, '#' unless ($found); + } + } + + return join '',@fnr; +} diff --git a/challenge-074/mohammad-anwar/perl/ch-2.t b/challenge-074/mohammad-anwar/perl/ch-2.t new file mode 100755 index 0000000000..8698c20a88 --- /dev/null +++ b/challenge-074/mohammad-anwar/perl/ch-2.t @@ -0,0 +1,55 @@ +#!/usr/bin/perl + +# +# Perl Weekly Challenge - 074 +# +# Task #2: FNR Character +# +# https://perlweeklychallenge.org/blog/perl-weekly-challenge-074 +# + +package FNRCharacter; + +use Moo; + +sub fnr_character { + my ($self, $string) = @_; + + my @fnr = (); + foreach my $i (0 .. length($string) - 1) { + my $s = substr($string, 0, $i + 1); + if (length($s) == 1) { + push @fnr, $s; + } + else { + my $found = 0; + my %count = (); + + $count{$_}++ for split //, $s; + foreach (split //, reverse $s) { + if ($count{$_} == 1) { + push @fnr, $_; + $found = 1; + last; + } + } + push @fnr, '#' unless ($found); + } + } + + return join '',@fnr; +} + +package main; + +use strict; +use warnings; + +use Test2::V0 -target => 'FNRCharacter'; + +isa_ok($CLASS, 'FNRCharacter'); +can_ok($CLASS, 'fnr_character'); +is($CLASS->fnr_character('ababc'), 'abb#c', 'example 1'); +is($CLASS->fnr_character('xyzzyx'), 'xyzyx#', 'example 2'); + +done_testing; diff --git a/challenge-074/mohammad-anwar/raku/ch-1.raku b/challenge-074/mohammad-anwar/raku/ch-1.raku new file mode 100755 index 0000000000..58fd3d934c --- /dev/null +++ b/challenge-074/mohammad-anwar/raku/ch-1.raku @@ -0,0 +1,36 @@ +#!/usr/bin/env raku + +# +# Perl Weekly Challenge - 074 +# +# Task #1: Majority Element +# +# https://perlweeklychallenge.org/blog/perl-weekly-challenge-074 +# + +use v6.d; + +sub MAIN(Str :$list = "1, 2, 2, 3, 2, 4, 2") { + find-majority-element($list).say; +} + +# +# +# METHOD + +sub find-majority-element(Str $list is copy) { + + die "ERROR: Invalid list [$list].\n" + unless $list ~~ /^[\s?\-?\d\,?\s?]+$/; + + say "List: $list"; + $list ~~ s:g/\s//; + my $l = [ $list.split(',') ]; + + my $mid_point = floor($l.elems / 2); + my %elements; + $l.map({ %elements{$_}++ }); + my $top = %elements.sort({ $^b.value <=> $^a.value }).head; + + return ($top.value >= $mid_point) ?? ($top.key) !! (-1); +} diff --git a/challenge-074/mohammad-anwar/raku/ch-1.t b/challenge-074/mohammad-anwar/raku/ch-1.t new file mode 100755 index 0000000000..d3db048e2b --- /dev/null +++ b/challenge-074/mohammad-anwar/raku/ch-1.t @@ -0,0 +1,36 @@ +#!/usr/bin/env raku + +# +# Perl Weekly Challenge - 074 +# +# Task #1: Majority Element +# +# https://perlweeklychallenge.org/blog/perl-weekly-challenge-074 +# + +use Test; + +is find-majority-element("1, 2, 2, 3, 2, 4, 2"), 2, "example 1"; +is find-majority-element("1, 3, 1, 2, 4, 5"), -1, "example 2"; + +done-testing; + +# +# +# METHOD + +sub find-majority-element(Str $list is copy) { + + die "ERROR: Invalid list [$list].\n" + unless $list ~~ /^[\s?\-?\d\,?\s?]+$/; + + $list ~~ s:g/\s//; + my $l = [ $list.split(',') ]; + + my $mid_point = floor($l.elems / 2); + my %elements; + $l.map({ %elements{$_}++ }); + my $top = %elements.sort({ $^b.value <=> $^a.value }).head; + + return ($top.value >= $mid_point) ?? ($top.key) !! (-1); +} diff --git a/challenge-074/mohammad-anwar/raku/ch-2.raku b/challenge-074/mohammad-anwar/raku/ch-2.raku new file mode 100755 index 0000000000..af1df5a39d --- /dev/null +++ b/challenge-074/mohammad-anwar/raku/ch-2.raku @@ -0,0 +1,45 @@ +#!/usr/bin/env raku + +# +# Perl Weekly Challenge - 074 +# +# Task #2: FNR Character +# +# https://perlweeklychallenge.org/blog/perl-weekly-challenge-074 +# + +use v6.d; + +sub MAIN(Str :$S = 'ababc') { + fnr-character($S).join(' => ').say; +} + +# +# +# METHOD + +sub fnr-character(Str $string) { + + my @fnr = (); + for 0 .. $string.chars - 1 -> $i { + my $s = $string.substr(0, $i + 1); + if $s.chars == 1 { + @fnr.push: $s; + } + else { + my $found = False; + my %count = (); + $s.comb.map({ %count{$_}++ }); + for $s.flip.comb -> $char { + if %count{$char} == 1 { + @fnr.push: $char; + $found = True; + last; + } + } + @fnr.push: '#' unless $found; + } + } + + return @fnr.join(''); +} diff --git a/challenge-074/mohammad-anwar/raku/ch-2.t b/challenge-074/mohammad-anwar/raku/ch-2.t new file mode 100755 index 0000000000..5874ba219d --- /dev/null +++ b/challenge-074/mohammad-anwar/raku/ch-2.t @@ -0,0 +1,46 @@ +#!/usr/bin/env raku + +# +# Perl Weekly Challenge - 074 +# +# Task #2: FNR Character +# +# https://perlweeklychallenge.org/blog/perl-weekly-challenge-074 +# + +use Test; + +is fnr-character('ababc'), 'abb#c', 'example 1'; +is fnr-character('xyzzyx'), 'xyzyx#', 'example 2'; + +done-testing; + +# +# +# METHOD + +sub fnr-character(Str $string) { + + my @fnr = (); + for 0 .. $string.chars - 1 -> $i { + my $s = $string.substr(0, $i + 1); + if $s.chars == 1 { + @fnr.push: $s; + } + else { + my $found = False; + my %count = (); + $s.comb.map({ %count{$_}++ }); + for $s.flip.comb -> $char { + if %count{$char} == 1 { + @fnr.push: $char; + $found = True; + last; + } + } + @fnr.push: '#' unless $found; + } + } + + return @fnr.join(''); +} diff --git a/challenge-074/mohammad-anwar/swift/ch-1.swift b/challenge-074/mohammad-anwar/swift/ch-1.swift new file mode 100755 index 0000000000..f3e2f382f3 --- /dev/null +++ b/challenge-074/mohammad-anwar/swift/ch-1.swift @@ -0,0 +1,96 @@ +import Foundation + +/* + +Perl Weekly Challenge - 074 + +Task #1: Majority Element + +https://perlweeklychallenge.org/blog/perl-weekly-challenge-074 + +*/ + +enum ParamError: Error { + case missingList + case invalidList +} + +do { + let paramCount:Int = Int(CommandLine.argc) + + if paramCount <= 1 { + throw ParamError.missingList + } + + let list:String = CommandLine.arguments[1] + + if isValidList(list) { + let array = list.components(separatedBy: ", ") + + if array.count >= 2 { + + let midPoint:Int = Int(floor(Double(array.count) / 2)) + var (topKey, topVal) = findTopElement(array) + + if topVal < midPoint { + topKey = -1 + } + + print("List: \(list)") + print("Majority Element: \(topKey)") + } + } + else { + throw ParamError.invalidList + } +} +catch ParamError.missingList { + print("Missing list.") +} +catch ParamError.invalidList { + print("Invalid list.") +} +catch let error { + print(error) +} + +// +// +// Functions + +func isValidList(_ list:String) -> Bool { + + let pattern = "^[\\-?\\d\\,?\\s?]+$" + let regex = try! NSRegularExpression(pattern: pattern) + let range = NSRange(location: 0, length: list.utf16.count) + + if regex.firstMatch(in: list, options: [], range: range) != nil { + return true + } + else { + return false + } +} + +func findTopElement(_ array:[String]) -> (Int, Int) { + + var dict = [Int: Int]() + for i in 0.. $1.1 } + + return (sortedDict[0].key, sortedDict[0].value) +} diff --git a/challenge-074/mohammad-anwar/swift/ch-2.swift b/challenge-074/mohammad-anwar/swift/ch-2.swift new file mode 100755 index 0000000000..946e42b707 --- /dev/null +++ b/challenge-074/mohammad-anwar/swift/ch-2.swift @@ -0,0 +1,89 @@ +import Foundation + +/* + +Perl Weekly Challenge - 074 + +Task #2: FNR Character + +https://perlweeklychallenge.org/blog/perl-weekly-challenge-074 + +*/ + +enum ParamError: Error { + case missingString +} + +do { + let paramCount:Int = Int(CommandLine.argc) + + if paramCount <= 1 { + throw ParamError.missingString + } + + let string:String = CommandLine.arguments[1] + let chars:[Character] = Array(String(string)) + + var fnr = [Character]() + if chars.count >= 2 { + + for i in 0.. [Character: Int] { + + let chars:[Character] = Array(String(substring)) + var characters = [Character: Int]() + for i in 0..{point.name}: {point.y:f}
", - "followPointer" : 1, - "headerFormat" : "{series.name}
" - }, - "title" : { - "text" : "Perl Weekly Challenge - 074" - }, "drilldown" : { "series" : [ { - "id" : "Mark Anderson", "name" : "Mark Anderson", "data" : [ [ "Raku", 1 ] - ] + ], + "id" : "Mark Anderson" + }, + { + "data" : [ + [ + "Perl", + 2 + ], + [ + "Raku", + 2 + ] + ], + "name" : "Mohammad S Anwar", + "id" : "Mohammad S Anwar" } ] }, - "plotOptions" : { - "series" : { - "dataLabels" : { - "format" : "{point.y}", - "enabled" : 1 - }, - "borderWidth" : 0 - } + "chart" : { + "type" : "column" + }, + "xAxis" : { + "type" : "category" }, "series" : [ { @@ -53,11 +44,39 @@ "colorByPoint" : 1, "data" : [ { - "y" : 1, + "drilldown" : "Mark Anderson", "name" : "Mark Anderson", - "drilldown" : "Mark Anderson" + "y" : 1 + }, + { + "name" : "Mohammad S Anwar", + "y" : 4, + "drilldown" : "Mohammad S Anwar" } ] } - ] + ], + "tooltip" : { + "headerFormat" : "{series.name}
", + "followPointer" : 1, + "pointFormat" : "{point.name}: {point.y:f}
" + }, + "plotOptions" : { + "series" : { + "dataLabels" : { + "enabled" : 1, + "format" : "{point.y}" + }, + "borderWidth" : 0 + } + }, + "legend" : { + "enabled" : 0 + }, + "title" : { + "text" : "Perl Weekly Challenge - 074" + }, + "subtitle" : { + "text" : "[Champions: 2] Last updated at 2020-08-17 05:05:55 GMT" + } } diff --git a/stats/pwc-language-breakdown-summary.json b/stats/pwc-language-breakdown-summary.json index dd4d554d47..4746afda09 100644 --- a/stats/pwc-language-breakdown-summary.json +++ b/stats/pwc-language-breakdown-summary.json @@ -1,7 +1,31 @@ { + "legend" : { + "enabled" : "false" + }, + "subtitle" : { + "text" : "Last updated at 2020-08-17 05:05:55 GMT" + }, "title" : { "text" : "Perl Weekly Challenge Contributions [2019 - 2020]" }, + "yAxis" : { + "title" : { + "text" : null + }, + "min" : 0 + }, + "chart" : { + "type" : "column" + }, + "xAxis" : { + "labels" : { + "style" : { + "fontSize" : "13px", + "fontFamily" : "Verdana, sans-serif" + } + }, + "type" : "category" + }, "series" : [ { "data" : [ @@ -11,53 +35,29 @@ ], [ "Perl", - 3042 + 3044 ], [ "Raku", - 1982 + 1984 ] ], + "name" : "Contributions", "dataLabels" : { - "y" : 10, + "align" : "right", + "format" : "{point.y:.0f}", + "color" : "#FFFFFF", "style" : { "fontSize" : "13px", "fontFamily" : "Verdana, sans-serif" }, - "align" : "right", - "format" : "{point.y:.0f}", "rotation" : -90, "enabled" : "true", - "color" : "#FFFFFF" - }, - "name" : "Contributions" - } - ], - "xAxis" : { - "type" : "category", - "labels" : { - "style" : { - "fontSize" : "13px", - "fontFamily" : "Verdana, sans-serif" + "y" : 10 } } - }, + ], "tooltip" : { "pointFormat" : "{point.y:.0f}" - }, - "legend" : { - "enabled" : "false" - }, - "subtitle" : { - "text" : "Last updated at 2020-08-17 04:51:42 GMT" - }, - "chart" : { - "type" : "column" - }, - "yAxis" : { - "title" : { - "text" : null - }, - "min" : 0 } } diff --git a/stats/pwc-language-breakdown.json b/stats/pwc-language-breakdown.json index 5128a2dd0e..406de8fccd 100644 --- a/stats/pwc-language-breakdown.json +++ b/stats/pwc-language-breakdown.json @@ -2,1391 +2,39 @@ "xAxis" : { "type" : "category" }, - "tooltip" : { - "pointFormat" : "Challenge {point.name}: {point.y:f}
", - "headerFormat" : "", - "followPointer" : "true" - }, - "title" : { - "text" : "Perl Weekly Challenge Language" - }, - "drilldown" : { - "series" : [ - { - "data" : [ - [ - "Perl", - 86 - ], - [ - "Raku", - 45 - ], - [ - "Blog", - 11 - ] - ], - "name" : "001", - "id" : "001" - }, - { - "id" : "002", - "name" : "002", - "data" : [ - [ - "Perl", - 65 - ], - [ - "Raku", - 34 - ], - [ - "Blog", - 10 - ] - ] - }, - { - "data" : [ - [ - "Perl", - 34 - ], - [ - "Raku", - 28 - ], - [ - "Blog", - 9 - ] - ], - "id" : "003", - "name" : "003" - }, - { - "data" : [ - [ - "Perl", - 50 - ], - [ - "Raku", - 31 - ], - [ - "Blog", - 10 - ] - ], - "name" : "004", - "id" : "004" - }, - { - "id" : "005", - "name" : "005", - "data" : [ - [ - "Perl", - 36 - ], - [ - "Raku", - 24 - ], - [ - "Blog", - 12 - ] - ] - }, - { - "data" : [ - [ - "Perl", - 29 - ], - [ - "Raku", - 16 - ], - [ - "Blog", - 7 - ] - ], - "id" : "006", - "name" : "006" - }, - { - "name" : "007", - "id" : "007", - "data" : [ - [ - "Perl", - 28 - ], - [ - "Raku", - 21 - ], - [ - "Blog", - 10 - ] - ] - }, - { - "data" : [ - [ - "Perl", - 40 - ], - [ - "Raku", - 20 - ], - [ - "Blog", - 12 - ] - ], - "id" : "008", - "name" : "008" - }, - { - "data" : [ - [ - "Perl", - 37 - ], - [ - "Raku", - 18 - ], - [ - "Blog", - 13 - ] - ], - "name" : "009", - "id" : "009" - }, - { - "data" : [ - [ - "Perl", - 32 - ], - [ - "Raku", - 17 - ], - [ - "Blog", - 11 - ] - ], - "id" : "010", - "name" : "010" - }, - { - "id" : "011", - "name" : "011", - "data" : [ - [ - "Perl", - 43 - ], - [ - "Raku", - 26 - ], - [ - "Blog", - 10 - ] - ] - }, - { - "id" : "012", - "name" : "012", - "data" : [ - [ - "Perl", - 44 - ], - [ - "Raku", - 28 - ], - [ - "Blog", - 11 - ] - ] - }, - { - "id" : "013", - "name" : "013", - "data" : [ - [ - "Perl", - 42 - ], - [ - "Raku", - 21 - ], - [ - "Blog", - 13 - ] - ] - }, - { - "data" : [ - [ - "Perl", - 52 - ], - [ - "Raku", - 29 - ], - [ - "Blog", - 15 - ] - ], - "id" : "014", - "name" : "014" - }, - { - "data" : [ - [ - "Perl", - 52 - ], - [ - "Raku", - 26 - ], - [ - "Blog", - 15 - ] - ], - "name" : "015", - "id" : "015" - }, - { - "id" : "016", - "name" : "016", - "data" : [ - [ - "Perl", - 33 - ], - [ - "Raku", - 21 - ], - [ - "Blog", - 12 - ] - ] - }, - { - "data" : [ - [ - "Perl", - 42 - ], - [ - "Raku", - 25 - ], - [ - "Blog", - 12 - ] - ], - "id" : "017", - "name" : "017" - }, - { - "id" : "018", - "name" : "018", - "data" : [ - [ - "Perl", - 33 - ], - [ - "Raku", - 29 - ], - [ - "Blog", - 14 - ] - ] - }, - { - "id" : "019", - "name" : "019", - "data" : [ - [ - "Perl", - 52 - ], - [ - "Raku", - 32 - ], - [ - "Blog", - 13 - ] - ] - }, - { - "data" : [ - [ - "Perl", - 47 - ], - [ - "Raku", - 35 - ], - [ - "Blog", - 13 - ] - ], - "name" : "020", - "id" : "020" - }, - { - "data" : [ - [ - "Perl", - 35 - ], - [ - "Raku", - 22 - ], - [ - "Blog", - 10 - ] - ], - "name" : "021", - "id" : "021" - }, - { - "id" : "022", - "name" : "022", - "data" : [ - [ - "Perl", - 32 - ], - [ - "Raku", - 21 - ], - [ - "Blog", - 10 - ] - ] - }, - { - "data" : [ - [ - "Perl", - 49 - ], - [ - "Raku", - 30 - ], - [ - "Blog", - 12 - ] - ], - "id" : "023", - "name" : "023" - }, - { - "data" : [ - [ - "Perl", - 35 - ], - [ - "Raku", - 24 - ], - [ - "Blog", - 11 - ] - ], - "name" : "024", - "id" : "024" - }, - { - "data" : [ - [ - "Perl", - 26 - ], - [ - "Raku", - 17 - ], - [ - "Blog", - 12 - ] - ], - "name" : "025", - "id" : "025" - }, - { - "id" : "026", - "name" : "026", - "data" : [ - [ - "Perl", - 33 - ], - [ - "Raku", - 27 - ], - [ - "Blog", - 10 - ] - ] - }, - { - "name" : "027", - "id" : "027", - "data" : [ - [ - "Perl", - 29 - ], - [ - "Raku", - 20 - ], - [ - "Blog", - 9 - ] - ] - }, - { - "data" : [ - [ - "Perl", - 45 - ], - [ - "Raku", - 24 - ], - [ - "Blog", - 9 - ] - ], - "name" : "028", - "id" : "028" - }, - { - "data" : [ - [ - "Perl", - 40 - ], - [ - "Raku", - 25 - ], - [ - "Blog", - 12 - ] - ], - "name" : "029", - "id" : "029" - }, - { - "data" : [ - [ - "Perl", - 74 - ], - [ - "Raku", - 31 - ], - [ - "Blog", - 10 - ] - ], - "id" : "030", - "name" : "030" - }, - { - "id" : "031", - "name" : "031", - "data" : [ - [ - "Perl", - 50 - ], - [ - "Raku", - 28 - ], - [ - "Blog", - 9 - ] - ] - }, - { - "data" : [ - [ - "Perl", - 57 - ], - [ - "Raku", - 25 - ], - [ - "Blog", - 10 - ] - ], - "name" : "032", - "id" : "032" - }, - { - "id" : "033", - "name" : "033", - "data" : [ - [ - "Perl", - 62 - ], - [ - "Raku", - 36 - ], - [ - "Blog", - 10 - ] - ] - }, - { - "id" : "034", - "name" : "034", - "data" : [ - [ - "Perl", - 30 - ], - [ - "Raku", - 21 - ], - [ - "Blog", - 11 - ] - ] - }, - { - "id" : "035", - "name" : "035", - "data" : [ - [ - "Perl", - 33 - ], - [ - "Raku", - 20 - ], - [ - "Blog", - 9 - ] - ] - }, - { - "name" : "036", - "id" : "036", - "data" : [ - [ - "Perl", - 35 - ], - [ - "Raku", - 20 - ], - [ - "Blog", - 11 - ] - ] - }, - { - "data" : [ - [ - "Perl", - 34 - ], - [ - "Raku", - 22 - ], - [ - "Blog", - 9 - ] - ], - "name" : "037", - "id" : "037" - }, - { - "data" : [ - [ - "Perl", - 31 - ], - [ - "Raku", - 22 - ], - [ - "Blog", - 12 - ] - ], - "name" : "038", - "id" : "038" - }, - { - "name" : "039", - "id" : "039", - "data" : [ - [ - "Perl", - 29 - ], - [ - "Raku", - 19 - ], - [ - "Blog", - 12 - ] - ] - }, - { - "data" : [ - [ - "Perl", - 39 - ], - [ - "Raku", - 22 - ], - [ - "Blog", - 10 - ] - ], - "id" : "040", - "name" : "040" - }, - { - "data" : [ - [ - "Perl", - 37 - ], - [ - "Raku", - 28 - ], - [ - "Blog", - 9 - ] - ], - "name" : "041", - "id" : "041" - }, - { - "data" : [ - [ - "Perl", - 47 - ], - [ - "Raku", - 30 - ], - [ - "Blog", - 11 - ] - ], - "id" : "042", - "name" : "042" - }, - { - "id" : "043", - "name" : "043", - "data" : [ - [ - "Perl", - 33 - ], - [ - "Raku", - 22 - ], - [ - "Blog", - 11 - ] - ] - }, - { - "name" : "044", - "id" : "044", - "data" : [ - [ - "Perl", - 41 - ], - [ - "Raku", - 30 - ], - [ - "Blog", - 11 - ] - ] - }, - { - "data" : [ - [ - "Perl", - 50 - ], - [ - "Raku", - 33 - ], - [ - "Blog", - 11 - ] - ], - "id" : "045", - "name" : "045" - }, - { - "id" : "046", - "name" : "046", - "data" : [ - [ - "Perl", - 44 - ], - [ - "Raku", - 31 - ], - [ - "Blog", - 10 - ] - ] - }, - { - "data" : [ - [ - "Perl", - 43 - ], - [ - "Raku", - 29 - ], - [ - "Blog", - 10 - ] - ], - "name" : "047", - "id" : "047" - }, - { - "data" : [ - [ - "Perl", - 59 - ], - [ - "Raku", - 35 - ], - [ - "Blog", - 12 - ] - ], - "name" : "048", - "id" : "048" - }, - { - "data" : [ - [ - "Perl", - 48 - ], - [ - "Raku", - 25 - ], - [ - "Blog", - 12 - ] - ], - "id" : "049", - "name" : "049" - }, - { - "data" : [ - [ - "Perl", - 50 - ], - [ - "Raku", - 34 - ], - [ - "Blog", - 12 - ] - ], - "name" : "050", - "id" : "050" - }, - { - "name" : "051", - "id" : "051", - "data" : [ - [ - "Perl", - 46 - ], - [ - "Raku", - 30 - ], - [ - "Blog", - 11 - ] - ] - }, - { - "data" : [ - [ - "Perl", - 45 - ], - [ - "Raku", - 30 - ], - [ - "Blog", - 14 - ] - ], - "name" : "052", - "id" : "052" - }, - { - "name" : "053", - "id" : "053", - "data" : [ - [ - "Perl", - 45 - ], - [ - "Raku", - 39 - ], - [ - "Blog", - 15 - ] - ] - }, - { - "data" : [ - [ - "Perl", - 45 - ], - [ - "Raku", - 38 - ], - [ - "Blog", - 18 - ] - ], - "id" : "054", - "name" : "054" - }, - { - "data" : [ - [ - "Perl", - 41 - ], - [ - "Raku", - 31 - ], - [ - "Blog", - 14 - ] - ], - "id" : "055", - "name" : "055" - }, - { - "id" : "056", - "name" : "056", - "data" : [ - [ - "Perl", - 47 - ], - [ - "Raku", - 30 - ], - [ - "Blog", - 16 - ] - ] - }, - { - "data" : [ - [ - "Perl", - 39 - ], - [ - "Raku", - 24 - ], - [ - "Blog", - 15 - ] - ], - "id" : "057", - "name" : "057" - }, - { - "data" : [ - [ - "Perl", - 33 - ], - [ - "Raku", - 21 - ], - [ - "Blog", - 13 - ] - ], - "id" : "058", - "name" : "058" - }, - { - "data" : [ - [ - "Perl", - 39 - ], - [ - "Raku", - 32 - ], - [ - "Blog", - 16 - ] - ], - "name" : "059", - "id" : "059" - }, - { - "data" : [ - [ - "Perl", - 39 - ], - [ - "Raku", - 28 - ], - [ - "Blog", - 16 - ] - ], - "id" : "060", - "name" : "060" - }, - { - "data" : [ - [ - "Perl", - 37 - ], - [ - "Raku", - 28 - ], - [ - "Blog", - 14 - ] - ], - "name" : "061", - "id" : "061" - }, - { - "id" : "062", - "name" : "062", - "data" : [ - [ - "Perl", - 26 - ], - [ - "Raku", - 17 - ], - [ - "Blog", - 11 - ] - ] - }, - { - "id" : "063", - "name" : "063", - "data" : [ - [ - "Perl", - 42 - ], - [ - "Raku", - 32 - ], - [ - "Blog", - 13 - ] - ] - }, - { - "name" : "064", - "id" : "064", - "data" : [ - [ - "Perl", - 35 - ], - [ - "Raku", - 25 - ], - [ - "Blog", - 16 - ] - ] - }, - { - "data" : [ - [ - "Perl", - 32 - ], - [ - "Raku", - 24 - ], - [ - "Blog", - 15 - ] - ], - "name" : "065", - "id" : "065" - }, - { - "data" : [ - [ - "Perl", - 39 - ], - [ - "Raku", - 29 - ], - [ - "Blog", - 14 - ] - ], - "id" : "066", - "name" : "066" - }, - { - "data" : [ - [ - "Perl", - 38 - ], - [ - "Raku", - 32 - ], - [ - "Blog", - 18 - ] - ], - "id" : "067", - "name" : "067" - }, - { - "data" : [ - [ - "Perl", - 33 - ], - [ - "Raku", - 27 - ], - [ - "Blog", - 13 - ] - ], - "name" : "068", - "id" : "068" - }, - { - "id" : "069", - "name" : "069", - "data" : [ - [ - "Perl", - 39 - ], - [ - "Raku", - 26 - ], - [ - "Blog", - 16 - ] - ] - }, - { - "data" : [ - [ - "Perl", - 42 - ], - [ - "Raku", - 32 - ], - [ - "Blog", - 17 - ] - ], - "id" : "070", - "name" : "070" - }, - { - "name" : "071", - "id" : "071", - "data" : [ - [ - "Perl", - 31 - ], - [ - "Raku", - 30 - ], - [ - "Blog", - 15 - ] - ] - }, - { - "id" : "072", - "name" : "072", - "data" : [ - [ - "Perl", - 51 - ], - [ - "Raku", - 39 - ], - [ - "Blog", - 19 - ] - ] - }, - { - "name" : "073", - "id" : "073", - "data" : [ - [ - "Perl", - 51 - ], - [ - "Raku", - 38 - ], - [ - "Blog", - 16 - ] - ] - }, - { - "data" : [ - [ - "Perl", - 0 - ], - [ - "Raku", - 1 - ], - [ - "Blog", - 0 - ] - ], - "id" : "074", - "name" : "074" - } - ] - }, - "plotOptions" : { - "series" : { - "dataLabels" : { - "format" : "{point.y}", - "enabled" : 1 - }, - "borderWidth" : 0 - } - }, "series" : [ { + "colorByPoint" : "true", "data" : [ { + "drilldown" : "001", "y" : 142, - "name" : "#001", - "drilldown" : "001" + "name" : "#001" }, { + "drilldown" : "002", "name" : "#002", - "y" : 109, - "drilldown" : "002" + "y" : 109 }, { - "drilldown" : "003", + "name" : "#003", "y" : 71, - "name" : "#003" + "drilldown" : "003" }, { - "y" : 91, "name" : "#004", + "y" : 91, "drilldown" : "004" }, { - "y" : 72, "name" : "#005", + "y" : 72, "drilldown" : "005" }, { "drilldown" : "006", - "y" : 52, - "name" : "#006" + "name" : "#006", + "y" : 52 }, { "y" : 59, @@ -1395,8 +43,8 @@ }, { "drilldown" : "008", - "y" : 72, - "name" : "#008" + "name" : "#008", + "y" : 72 }, { "y" : 68, @@ -1409,18 +57,18 @@ "drilldown" : "010" }, { - "name" : "#011", "y" : 79, + "name" : "#011", "drilldown" : "011" }, { - "name" : "#012", + "drilldown" : "012", "y" : 83, - "drilldown" : "012" + "name" : "#012" }, { - "y" : 76, "name" : "#013", + "y" : 76, "drilldown" : "013" }, { @@ -1429,29 +77,29 @@ "name" : "#014" }, { + "drilldown" : "015", "name" : "#015", - "y" : 93, - "drilldown" : "015" + "y" : 93 }, { - "y" : 66, "name" : "#016", + "y" : 66, "drilldown" : "016" }, { "drilldown" : "017", - "name" : "#017", - "y" : 79 + "y" : 79, + "name" : "#017" }, { + "drilldown" : "018", "name" : "#018", - "y" : 76, - "drilldown" : "018" + "y" : 76 }, { "drilldown" : "019", - "y" : 97, - "name" : "#019" + "name" : "#019", + "y" : 97 }, { "drilldown" : "020", @@ -1459,13 +107,13 @@ "name" : "#020" }, { - "y" : 67, + "drilldown" : "021", "name" : "#021", - "drilldown" : "021" + "y" : 67 }, { - "name" : "#022", "y" : 63, + "name" : "#022", "drilldown" : "022" }, { @@ -1484,14 +132,14 @@ "drilldown" : "025" }, { - "drilldown" : "026", "y" : 70, - "name" : "#026" + "name" : "#026", + "drilldown" : "026" }, { + "drilldown" : "027", "name" : "#027", - "y" : 58, - "drilldown" : "027" + "y" : 58 }, { "drilldown" : "028", @@ -1499,9 +147,9 @@ "y" : 78 }, { + "drilldown" : "029", "y" : 77, - "name" : "#029", - "drilldown" : "029" + "name" : "#029" }, { "drilldown" : "030", @@ -1509,14 +157,14 @@ "y" : 115 }, { - "name" : "#031", + "drilldown" : "031", "y" : 87, - "drilldown" : "031" + "name" : "#031" }, { - "drilldown" : "032", "name" : "#032", - "y" : 92 + "y" : 92, + "drilldown" : "032" }, { "drilldown" : "033", @@ -1524,24 +172,24 @@ "name" : "#033" }, { - "y" : 62, "name" : "#034", + "y" : 62, "drilldown" : "034" }, { - "y" : 62, + "drilldown" : "035", "name" : "#035", - "drilldown" : "035" + "y" : 62 }, { - "drilldown" : "036", + "name" : "#036", "y" : 66, - "name" : "#036" + "drilldown" : "036" }, { - "drilldown" : "037", + "y" : 65, "name" : "#037", - "y" : 65 + "drilldown" : "037" }, { "drilldown" : "038", @@ -1549,49 +197,49 @@ "y" : 65 }, { + "drilldown" : "039", "name" : "#039", - "y" : 60, - "drilldown" : "039" + "y" : 60 }, { + "drilldown" : "040", "name" : "#040", - "y" : 71, - "drilldown" : "040" + "y" : 71 }, { "drilldown" : "041", - "y" : 74, - "name" : "#041" + "name" : "#041", + "y" : 74 }, { + "drilldown" : "042", "y" : 88, - "name" : "#042", - "drilldown" : "042" + "name" : "#042" }, { - "y" : 66, + "drilldown" : "043", "name" : "#043", - "drilldown" : "043" + "y" : 66 }, { - "name" : "#044", + "drilldown" : "044", "y" : 82, - "drilldown" : "044" + "name" : "#044" }, { - "drilldown" : "045", + "name" : "#045", "y" : 94, - "name" : "#045" + "drilldown" : "045" }, { - "name" : "#046", + "drilldown" : "046", "y" : 85, - "drilldown" : "046" + "name" : "#046" }, { - "drilldown" : "047", + "name" : "#047", "y" : 82, - "name" : "#047" + "drilldown" : "047" }, { "drilldown" : "048", @@ -1600,23 +248,23 @@ }, { "drilldown" : "049", - "y" : 85, - "name" : "#049" + "name" : "#049", + "y" : 85 }, { "drilldown" : "050", - "y" : 96, - "name" : "#050" + "name" : "#050", + "y" : 96 }, { - "y" : 87, + "drilldown" : "051", "name" : "#051", - "drilldown" : "051" + "y" : 87 }, { - "name" : "#052", + "drilldown" : "052", "y" : 89, - "drilldown" : "052" + "name" : "#052" }, { "drilldown" : "053", @@ -1624,14 +272,14 @@ "name" : "#053" }, { - "drilldown" : "054", "name" : "#054", - "y" : 101 + "y" : 101, + "drilldown" : "054" }, { - "drilldown" : "055", "y" : 86, - "name" : "#055" + "name" : "#055", + "drilldown" : "055" }, { "name" : "#056", @@ -1639,64 +287,64 @@ "drilldown" : "056" }, { - "y" : 78, "name" : "#057", + "y" : 78, "drilldown" : "057" }, { - "drilldown" : "058", + "y" : 67, "name" : "#058", - "y" : 67 + "drilldown" : "058" }, { - "name" : "#059", + "drilldown" : "059", "y" : 87, - "drilldown" : "059" + "name" : "#059" }, { "drilldown" : "060", - "name" : "#060", - "y" : 83 + "y" : 83, + "name" : "#060" }, { - "drilldown" : "061", "y" : 79, - "name" : "#061" + "name" : "#061", + "drilldown" : "061" }, { - "drilldown" : "062", "name" : "#062", - "y" : 54 + "y" : 54, + "drilldown" : "062" }, { - "drilldown" : "063", + "y" : 87, "name" : "#063", - "y" : 87 + "drilldown" : "063" }, { - "name" : "#064", "y" : 76, + "name" : "#064", "drilldown" : "064" }, { "drilldown" : "065", - "name" : "#065", - "y" : 71 + "y" : 71, + "name" : "#065" }, { - "y" : 82, "name" : "#066", + "y" : 82, "drilldown" : "066" }, { "drilldown" : "067", - "y" : 88, - "name" : "#067" + "name" : "#067", + "y" : 88 }, { "drilldown" : "068", - "y" : 73, - "name" : "#068" + "name" : "#068", + "y" : 73 }, { "drilldown" : "069", @@ -1704,19 +352,19 @@ "y" : 81 }, { - "drilldown" : "070", "name" : "#070", - "y" : 91 + "y" : 91, + "drilldown" : "070" }, { - "name" : "#071", "y" : 76, + "name" : "#071", "drilldown" : "071" }, { - "y" : 109, + "drilldown" : "072", "name" : "#072", - "drilldown" : "072" + "y" : 109 }, { "drilldown" : "073", @@ -1725,26 +373,1378 @@ }, { "drilldown" : "074", - "y" : 1, - "name" : "#074" + "name" : "#074", + "y" : 5 } ], - "colorByPoint" : "true", "name" : "Perl Weekly Challenge Languages" } ], + "tooltip" : { + "followPointer" : "true", + "headerFormat" : "", + "pointFormat" : "Challenge {point.name}: {point.y:f}
" + }, + "yAxis" : { + "title" : { + "text" : "Total Solutions" + } + }, + "drilldown" : { + "series" : [ + { + "data" : [ + [ + "Perl", + 86 + ], + [ + "Raku", + 45 + ], + [ + "Blog", + 11 + ] + ], + "name" : "001", + "id" : "001" + }, + { + "name" : "002", + "data" : [ + [ + "Perl", + 65 + ], + [ + "Raku", + 34 + ], + [ + "Blog", + 10 + ] + ], + "id" : "002" + }, + { + "id" : "003", + "data" : [ + [ + "Perl", + 34 + ], + [ + "Raku", + 28 + ], + [ + "Blog", + 9 + ] + ], + "name" : "003" + }, + { + "data" : [ + [ + "Perl", + 50 + ], + [ + "Raku", + 31 + ], + [ + "Blog", + 10 + ] + ], + "name" : "004", + "id" : "004" + }, + { + "data" : [ + [ + "Perl", + 36 + ], + [ + "Raku", + 24 + ], + [ + "Blog", + 12 + ] + ], + "name" : "005", + "id" : "005" + }, + { + "id" : "006", + "name" : "006", + "data" : [ + [ + "Perl", + 29 + ], + [ + "Raku", + 16 + ], + [ + "Blog", + 7 + ] + ] + }, + { + "data" : [ + [ + "Perl", + 28 + ], + [ + "Raku", + 21 + ], + [ + "Blog", + 10 + ] + ], + "name" : "007", + "id" : "007" + }, + { + "data" : [ + [ + "Perl", + 40 + ], + [ + "Raku", + 20 +