From 5d3aa9b2255c96c148cedb5a2df5aa113fe70520 Mon Sep 17 00:00:00 2001 From: Mohammad S Anwar Date: Mon, 2 Jan 2023 04:57:01 +0000 Subject: - Added solutions by Colin Crain. --- challenge-197/colin-crain/blog.txt | 1 + challenge-197/colin-crain/perl/ch-1.pl | 61 + challenge-197/colin-crain/perl/ch-2.pl | 205 +++ stats/pwc-current.json | 487 ++--- stats/pwc-language-breakdown-summary.json | 46 +- stats/pwc-language-breakdown.json | 2740 ++++++++++++++--------------- stats/pwc-leaders.json | 752 ++++---- stats/pwc-summary-1-30.json | 52 +- stats/pwc-summary-121-150.json | 102 +- stats/pwc-summary-151-180.json | 26 +- stats/pwc-summary-181-210.json | 18 +- stats/pwc-summary-211-240.json | 42 +- stats/pwc-summary-241-270.json | 118 +- stats/pwc-summary-271-300.json | 36 +- stats/pwc-summary-31-60.json | 108 +- stats/pwc-summary-61-90.json | 42 +- stats/pwc-summary-91-120.json | 26 +- stats/pwc-summary.json | 622 +++---- 18 files changed, 2885 insertions(+), 2599 deletions(-) create mode 100644 challenge-197/colin-crain/blog.txt create mode 100755 challenge-197/colin-crain/perl/ch-1.pl create mode 100755 challenge-197/colin-crain/perl/ch-2.pl diff --git a/challenge-197/colin-crain/blog.txt b/challenge-197/colin-crain/blog.txt new file mode 100644 index 0000000000..38c56c3361 --- /dev/null +++ b/challenge-197/colin-crain/blog.txt @@ -0,0 +1 @@ +https://colincrain.com/2023/01/02/add-a-little-wiggle-room diff --git a/challenge-197/colin-crain/perl/ch-1.pl b/challenge-197/colin-crain/perl/ch-1.pl new file mode 100755 index 0000000000..4ab94a4356 --- /dev/null +++ b/challenge-197/colin-crain/perl/ch-1.pl @@ -0,0 +1,61 @@ +#!/Users/colincrain/perl5/perlbrew/perls/perl-5.32.0/bin/perl +# +# move-zero.pl +# +# Move Zero +# Submitted by: Mohammad S Anwar +# +# You are given a list of integers, @list. +# +# Write a script to move all zero, if exists, to the end while +# maintaining the relative order of non-zero elements. +# +# +# Example 1 +# Input: @list = (1, 0, 3, 0, 0, 5) +# Output: (1, 3, 5, 0, 0, 0) +# +# Example 2 +# Input: @list = (1, 6, 4) +# Output: (1, 6, 4) +# +# Example 3 +# Input: @list = (0, 1, 0, 2, 0 +# Output: (1, 2, 0, 0, 0) +# +# © 2022 colin crain +## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## + + + +use warnings; +use strict; +use utf8; +use feature ":5.26"; +use feature qw(signatures); +no warnings 'experimental::signatures'; + + + +my @input = (1,0,0,4,5,0,7); +say "input: @input"; + + +my $idx; +my $limit = $#input; + +while (++$idx < $limit) { + if ($input[$idx] == 0) { + push @input, (splice @input, $idx, 1); + $idx--; + $limit--; + } +} + +say "output: @input"; + + + + + + diff --git a/challenge-197/colin-crain/perl/ch-2.pl b/challenge-197/colin-crain/perl/ch-2.pl new file mode 100755 index 0000000000..d48f626d13 --- /dev/null +++ b/challenge-197/colin-crain/perl/ch-2.pl @@ -0,0 +1,205 @@ +#!/Users/colincrain/perl5/perlbrew/perls/perl-5.32.0/bin/perl +# +# wiggling-out-of-trouble.pl +# +# Wiggle Sort +# Submitted by: Mohammad S Anwar +# You are given a list of integers, @list. +# +# Write a script to perform Wiggle Sort on the given list. +# +# +# Wiggle sort would be such as +# list[0] < list[1] > list[2] < list[3]…. +# +# +# Example 1 +# Input: @list = (1,5,1,1,6,4) +# Output: (1,6,1,5,1,4) +# +# Example 2 +# Input: @list = (1,3,2,2,3,1) +# Output: (2,3,1,3,1,2) +# +# +# method +# +# What is a wiggle sort? Beyond the immediate series of +# conditionals that need apply the actual final sequencing seems +# prety undefined. For example, there are a number of valid +# solutions for the first example in addition to the one given, +# such as (1,4,1,5,1,6) and (1,5,1,4,1,6). In fact there are six, +# and no method is defined to select a single solution. +# +# Further, from the same example multiple occurances of a value are +# obviously allowed, but no provision is made for when no valid +# wiggle ordering can be made. Consider, for instance, a list +# (2,2,2,2,2). We can plainly see that as no value is greater than +# any other no solution exists that will satisfy the very first +# conditional we come across: the second element must be greater +# than the first. +# +# I believe if the values were unique we could determine there +# would exist at minimum one solution for every array. But this is +# not the case, determining whether an array is solvable at all is +# not obvious. Can we narrow this down? +# +# If more than ceiling(length/2) elements are the same we will run +# out of elements to alternate and be forced into a run of adjacent +# equal values, so that won't work. It might be true that any array +# satisfying this condition can be made to work. +# +# 1,1,1,0,0 cannot work because 0,1,0,1,1 is the only progression +# going from left to right and it fails at the last element. +# +# 1,1,1,0,2 -> no solution, starting from either 0 or 1 +# 1,1,1,2,2 -> 1,2,1,2,1 as the over-half multiple is the smallest +# 1,1,2,0,0 -> 1,2,0,1,0 or 0,1,0,2,1 +# 1,1,2,2,0 -> 1,2,0,2,1 or 0,2,1,2,0 +# +# how about 6? +# +# 1,2,2,2,3,4 -> 2,3,2,4,1,2 two above, one below +# 1,1,2,2,2,4 -> 2,4,1,2,1,2 one above, two below +# 4,4,4,2,2,1 -> 1,4,2,4,2,4 all below +# +# it seems the multiple count of a single value can only be larger +# than floor(length/2) if it is the smallest value, but can be up +# to and including half the elements placed anywhere. I believe +# this logic applies downwards as well, meaning divisions smaller +# than one-half can all be accomodated. +# +# I believe, then, if we have no element count over one-half the +# total elements, or if the count of the most numerous element is +# ceiling(length/2) and the value in question is the smallest +# value, then that exists a valid solution. +# +# Note the ceiling will only apply when there are an odd number of +# elements, and we will start with the multiple and alternate the +# other, higher values in any ordering to create a valid +# wigglesort. This is obviously an edge case. +# +# Multiple elements need to be separated, so if we sort the arrant +# and divide it into two halves we can pick alternately from either +# the head or tail from both halves we can create wigglesorts if we +# are consistent with our choice. This sequential action of +# alternately taking the same indexed elements from two arrays is +# sometimes called zipping. +# +# We can still get into trouble with an overlapping multiple in the +# middle. This will determine whether we zip from the head or the +# tail. +# +# Consider (1,2,3,4,2,2,5,2): +# +# Sorted and split we get: +# (1,2,2,2) and (2,3,4,5) +# +# head -> (1,2), (2,3), (2,4), (2,5) does not work +# tail -> (2,5), (2,4), (2,3), (1,2) works +# +# So if the multiple in the lower half is more than half that +# subarray length we will need to start in reverse from the tails, +# otherwise we can use the heads. +# +# Finally, though, in hindsight why even do this last step? There's +# nothing inherent in the idea of a wigglesort that the result is +# lexicographically ascending, or even coherent. There's no reason +# to go from low to high. The problem in the edge case I +# constructed is that a run of multiples in the middle can overlap +# if we start from the heads of the subarray halves. Selecting from +# the tail first separates the overlap, moving the interfering +# values towards the ends, away from each other. +# +# So why not do this always and just be done with it? No particular +# wigglesort is better than any other. So lets do that. Out with +# the `no_duplicates()` sub and ant attemot to sort from the heads. +# This tightens things up rather well. And our `zip()` subroutine +# might as well be rolled into its `wigglezip()` wrapper. +# +# I get the feeling some important information was left out of this +# description. But I feel this should give us a satisfactory +# algorithm for finding one valid solution for every array that can +# have one. +# +# +# © 2022 colin crain +## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## + + + +use warnings; +use strict; +use utf8; +use feature ":5.26"; +use feature qw(signatures); +no warnings 'experimental::signatures'; + +my @input = @ARGV + ? @ARGV + : (6,4,4,7,4,4,1,8,5,4); +say "input: @input"; + +@input = sort {$a<=>$b} @input; +my @small = @input[0..(@input+1)/2-1]; ## up to ceiling +my @large = @input[(@input+1)/2..@input-1]; ## rest of array + +unless ( has_solution(\@input) ) { + say "no solution possible" and exit; +} +say "sorted: ", join ' ', wigglezip( \@small, \@large )->@*; + +sub has_solution ( $arr ) { +## checks to see no element is duplicated more than one-half the total +## length, or the ceiling under the specific circumstance that it is the +## smallest value in the set + my %freq; + $freq{$_}++ for $arr->@*; + my @range = sort {$b<=>$a} values %freq; + return 1 if $range[0] <= scalar($arr->@* )/ 2; ## highest freq value + if ($range[0] == int( ($arr->@* + 1)/2 )) { ## ceiling + my ($multiple) = grep { $freq{$_} == $range[0] } keys %freq; + if ( min( keys %freq ) == $multiple ) { + return 1; + } + } + + return 0; +} + +sub wigglezip ($aref1, $aref2) { +## zip two arrays from head if this makes a valid wigglesort, else reverse +## the arrays and zip, resulting with a zip from tails backwards + my @low = reverse $aref1->@*; + my @high = reverse $aref2->@*; + my @zipped; + + for (0..$#low) { + push @zipped, $low[$_]; + push @zipped, $high[$_] unless $_ > $#high; ; + } + + return \@zipped; +} + +# sub zip ($aref1, $aref2) { +# ## nondestructively zip two array references, if array are unequal length +# ## first is longer +# my @zipped; +# for (0..$aref1->$#*) { +# push @zipped, $aref1->[$_]; +# push @zipped, $aref2->[$_] unless $_ > $aref2->$#* ; +# } +# return \@zipped; +# } + +# sub no_duplicates ($arr) { +# ## check to see if an array does not contain any adjacent duplicated values +# ## in sequence +# # say "last |$arr->@*| ", scalar $arr->@*; +# for (0...($arr->$#*-1)) { +# # say "idx $_"; +# return 0 if $arr->[$_] == $arr->[$_+1]; +# } +# return 1; +# } diff --git a/stats/pwc-current.json b/stats/pwc-current.json index 4518e40433..8b6e0c4196 100644 --- a/stats/pwc-current.json +++ b/stats/pwc-current.json @@ -1,192 +1,9 @@ { - "series" : [ - { - "name" : "The Weekly Challenge - 197", - "data" : [ - { - "y" : 2, - "drilldown" : "Adam Russell", - "name" : "Adam Russell" - }, - { - "y" : 4, - "drilldown" : "Ali Moradi", - "name" : "Ali Moradi" - }, - { - "y" : 3, - "drilldown" : "Arne Sommer", - "name" : "Arne Sommer" - }, - { - "y" : 4, - "drilldown" : "Athanasius", - "name" : "Athanasius" - }, - { - "drilldown" : "Bob Lied", - "y" : 2, - "name" : "Bob Lied" - }, - { - "name" : "Bruce Gray", - "drilldown" : "Bruce Gray", - "y" : 2 - }, - { - "drilldown" : "Carlos Oliveira", - "y" : 2, - "name" : "Carlos Oliveira" - }, - { - "name" : "Cheok-Yin Fung", - "y" : 2, - "drilldown" : "Cheok-Yin Fung" - }, - { - "name" : "Dave Jacoby", - "y" : 2, - "drilldown" : "Dave Jacoby" - }, - { - "name" : "David Ferrone", - "drilldown" : "David Ferrone", - "y" : 2 - }, - { - "y" : 2, - "drilldown" : "E. Choroba", - "name" : "E. Choroba" - }, - { - "y" : 2, - "drilldown" : "Feng Chang", - "name" : "Feng Chang" - }, - { - "name" : "Flavio Poletti", - "y" : 6, - "drilldown" : "Flavio Poletti" - }, - { - "drilldown" : "James Smith", - "y" : 3, - "name" : "James Smith" - }, - { - "y" : 2, - "drilldown" : "Jan Krnavek", - "name" : "Jan Krnavek" - }, - { - "name" : "Jorg Sommrey", - "y" : 2, - "drilldown" : "Jorg Sommrey" - }, - { - "drilldown" : "Laurent Rosenfeld", - "y" : 5, - "name" : "Laurent Rosenfeld" - }, - { - "y" : 8, - "drilldown" : "Luca Ferrari", - "name" : "Luca Ferrari" - }, - { - "drilldown" : "Mark Anderson", - "y" : 2, - "name" : "Mark Anderson" - }, - { - "drilldown" : "Niels van Dijke", - "y" : 2, - "name" : "Niels van Dijke" - }, - { - "drilldown" : "Pip Stuart", - "y" : 2, - "name" : "Pip Stuart" - }, - { - "name" : "Robbie Hatley", - "y" : 3, - "drilldown" : "Robbie Hatley" - }, - { - "y" : 2, - "drilldown" : "Robert DiCicco", - "name" : "Robert DiCicco" - }, - { - "name" : "Robert Ransbottom", - "drilldown" : "Robert Ransbottom", - "y" : 2 - }, - { - "drilldown" : "Roger Bell_West", - "y" : 4, - "name" : "Roger Bell_West" - }, - { - "drilldown" : "Simon Green", - "y" : 3, - "name" : "Simon Green" - }, - { - "drilldown" : "Stephen G. Lynn", - "y" : 5, - "name" : "Stephen G. Lynn" - }, - { - "name" : "Thomas Kohler", - "y" : 4, - "drilldown" : "Thomas Kohler" - }, - { - "name" : "Ulrich Rieke", - "y" : 4, - "drilldown" : "Ulrich Rieke" - }, - { - "y" : 3, - "drilldown" : "W. Luis Mochan", - "name" : "W. Luis Mochan" - } - ], - "colorByPoint" : 1 - } - ], "title" : { "text" : "The Weekly Challenge - 197" }, - "plotOptions" : { - "series" : { - "borderWidth" : 0, - "dataLabels" : { - "enabled" : 1, - "format" : "{point.y}" - } - } - }, - "tooltip" : { - "headerFormat" : "{series.name}
", - "followPointer" : 1, - "pointFormat" : "{point.name}: {point.y:f}
" - }, - "yAxis" : { - "title" : { - "text" : "Total Solutions" - } - }, - "legend" : { - "enabled" : 0 - }, - "xAxis" : { - "type" : "category" - }, "subtitle" : { - "text" : "[Champions: 30] Last updated at 2023-01-02 03:56:19 GMT" + "text" : "[Champions: 31] Last updated at 2023-01-02 04:53:27 GMT" }, "drilldown" : { "series" : [ @@ -229,6 +46,8 @@ ] }, { + "name" : "Athanasius", + "id" : "Athanasius", "data" : [ [ "Perl", @@ -238,9 +57,7 @@ "Raku", 2 ] - ], - "id" : "Athanasius", - "name" : "Athanasius" + ] }, { "data" : [ @@ -263,8 +80,8 @@ ] }, { - "id" : "Carlos Oliveira", "name" : "Carlos Oliveira", + "id" : "Carlos Oliveira", "data" : [ [ "Perl", @@ -273,8 +90,8 @@ ] }, { - "name" : "Cheok-Yin Fung", "id" : "Cheok-Yin Fung", + "name" : "Cheok-Yin Fung", "data" : [ [ "Perl", @@ -282,6 +99,20 @@ ] ] }, + { + "id" : "Colin Crain", + "name" : "Colin Crain", + "data" : [ + [ + "Perl", + 2 + ], + [ + "Blog", + 1 + ] + ] + }, { "data" : [ [ @@ -289,22 +120,22 @@ 2 ] ], - "name" : "Dave Jacoby", - "id" : "Dave Jacoby" + "id" : "Dave Jacoby", + "name" : "Dave Jacoby" }, { - "name" : "David Ferrone", - "id" : "David Ferrone", "data" : [ [ "Perl", 2 ] - ] + ], + "name" : "David Ferrone", + "id" : "David Ferrone" }, { - "name" : "E. Choroba", "id" : "E. Choroba", + "name" : "E. Choroba", "data" : [ [ "Perl", @@ -313,14 +144,14 @@ ] }, { - "id" : "Feng Chang", - "name" : "Feng Chang", "data" : [ [ "Raku", 2 ] - ] + ], + "id" : "Feng Chang", + "name" : "Feng Chang" }, { "data" : [ @@ -337,10 +168,12 @@ 2 ] ], - "id" : "Flavio Poletti", - "name" : "Flavio Poletti" + "name" : "Flavio Poletti", + "id" : "Flavio Poletti" }, { + "id" : "James Smith", + "name" : "James Smith", "data" : [ [ "Perl", @@ -350,33 +183,31 @@ "Blog", 1 ] - ], - "id" : "James Smith", - "name" : "James Smith" + ] }, { + "id" : "Jan Krnavek", + "name" : "Jan Krnavek", "data" : [ [ "Raku", 2 ] - ], - "id" : "Jan Krnavek", - "name" : "Jan Krnavek" + ] }, { - "id" : "Jorg Sommrey", - "name" : "Jorg Sommrey", "data" : [ [ "Perl", 2 ] - ] + ], + "id" : "Jorg Sommrey", + "name" : "Jorg Sommrey" }, { - "id" : "Laurent Rosenfeld", "name" : "Laurent Rosenfeld", + "id" : "Laurent Rosenfeld", "data" : [ [ "Perl", @@ -393,8 +224,6 @@ ] }, { - "id" : "Luca Ferrari", - "name" : "Luca Ferrari", "data" : [ [ "Raku", @@ -404,27 +233,29 @@ "Blog", 6 ] - ] + ], + "id" : "Luca Ferrari", + "name" : "Luca Ferrari" }, { + "name" : "Mark Anderson", + "id" : "Mark Anderson", "data" : [ [ "Raku", 2 ] - ], - "id" : "Mark Anderson", - "name" : "Mark Anderson" + ] }, { + "name" : "Niels van Dijke", + "id" : "Niels van Dijke", "data" : [ [ "Perl", 2 ] - ], - "name" : "Niels van Dijke", - "id" : "Niels van Dijke" + ] }, { "data" : [ @@ -437,8 +268,6 @@ "name" : "Pip Stuart" }, { - "name" : "Robbie Hatley", - "id" : "Robbie Hatley", "data" : [ [ "Perl", @@ -448,7 +277,9 @@ "Blog", 1 ] - ] + ], + "id" : "Robbie Hatley", + "name" : "Robbie Hatley" }, { "data" : [ @@ -475,8 +306,6 @@ ] }, { - "id" : "Roger Bell_West", - "name" : "Roger Bell_West", "data" : [ [ "Perl", @@ -486,11 +315,13 @@ "Raku", 2 ] - ] + ], + "name" : "Roger Bell_West", + "id" : "Roger Bell_West" }, { - "id" : "Simon Green", "name" : "Simon Green", + "id" : "Simon Green", "data" : [ [ "Perl", @@ -521,8 +352,6 @@ "id" : "Stephen G. Lynn" }, { - "id" : "Thomas Kohler", - "name" : "Thomas Kohler", "data" : [ [ "Perl", @@ -532,7 +361,9 @@ "Blog", 2 ] - ] + ], + "id" : "Thomas Kohler", + "name" : "Thomas Kohler" }, { "data" : [ @@ -545,12 +376,10 @@ 2 ] ], - "id" : "Ulrich Rieke", - "name" : "Ulrich Rieke" + "name" : "Ulrich Rieke", + "id" : "Ulrich Rieke" }, { - "id" : "W. Luis Mochan", - "name" : "W. Luis Mochan", "data" : [ [ "Perl", @@ -560,11 +389,201 @@ "Blog", 1 ] - ] + ], + "id" : "W. Luis Mochan", + "name" : "W. Luis Mochan" } ] }, + "tooltip" : { + "followPointer" : 1, + "headerFormat" : "{series.name}
", + "pointFormat" : "{point.name}: {point.y:f}
" + }, "chart" : { "type" : "column" + }, + "plotOptions" : { + "series" : { + "borderWidth" : 0, + "dataLabels" : { + "enabled" : 1, + "format" : "{point.y}" + } + } + }, + "series" : [ + { + "colorByPoint" : 1, + "data" : [ + { + "drilldown" : "Adam Russell", + "y" : 2, + "name" : "Adam Russell" + }, + { + "drilldown" : "Ali Moradi", + "name" : "Ali Moradi", + "y" : 4 + }, + { + "y" : 3, + "name" : "Arne Sommer", + "drilldown" : "Arne Sommer" + }, + { + "drilldown" : "Athanasius", + "y" : 4, + "name" : "Athanasius" + }, + { + "drilldown" : "Bob Lied", + "y" : 2, + "name" : "Bob Lied" + }, + { + "name" : "Bruce Gray", + "y" : 2, + "drilldown" : "Bruce Gray" + }, + { + "name" : "Carlos Oliveira", + "y" : 2, + "drilldown" : "Carlos Oliveira" + }, + { + "drilldown" : "Cheok-Yin Fung", + "y" : 2, + "name" : "Cheok-Yin Fung" + }, + { + "y" : 3, + "name" : "Colin Crain", + "drilldown" : "Colin Crain" + }, + { + "drilldown" : "Dave Jacoby", + "name" : "Dave Jacoby", + "y" : 2 + }, + { + "drilldown" : "David Ferrone", + "y" : 2, + "name" : "David Ferrone" + }, + { + "drilldown" : "E. Choroba", + "name" : "E. Choroba", + "y" : 2 + }, + { + "y" : 2, + "name" : "Feng Chang", + "drilldown" : "Feng Chang" + }, + { + "drilldown" : "Flavio Poletti", + "name" : "Flavio Poletti", + "y" : 6 + }, + { + "drilldown" : "James Smith", + "name" : "James Smith", + "y" : 3 + }, + { + "y" : 2, + "name" : "Jan Krnavek", + "drilldown" : "Jan Krnavek" + }, + { + "y" : 2, + "name" : "Jorg Sommrey", + "drilldown" : "Jorg Sommrey" + }, + { + "drilldown" : "Laurent Rosenfeld", + "y" : 5, + "name" : "Laurent Rosenfeld" + }, + { + "drilldown" : "Luca Ferrari", + "y" : 8, + "name" : "Luca Ferrari" + }, + { + "name" : "Mark Anderson", + "y" : 2, + "drilldown" : "Mark Anderson" + }, + { + "drilldown" : "Niels van Dijke", + "name" : "Niels van Dijke", + "y" : 2 + }, + { + "drilldown" : "Pip Stuart", + "y" : 2, + "name" : "Pip Stuart" + }, + { + "drilldown" : "Robbie Hatley", + "name" : "Robbie Hatley", + "y" : 3 + }, + { + "name" : "Robert DiCicco", + "y" : 2, + "drilldown" : "Robert DiCicco" + }, + { + "y" : 2, + "name" : "Robert Ransbottom", + "drilldown" : "Robert Ransbottom" + }, + { + "y" : 4, + "name" : "Roger Bell_West", + "drilldown" : "Roger Bell_West" + }, + { + "drilldown" : "Simon Green", + "name" : "Simon Green", + "y" : 3 + }, + { + "drilldown" : "Stephen G. Lynn", + "y" : 5, + "name" : "Stephen G. Lynn" + }, + { + "name" : "Thomas Kohler", + "y" : 4, + "drilldown" : "Thomas Kohler" + }, + { + "drilldown" : "Ulrich Rieke", + "name" : "Ulrich Rieke", + "y" : 4 + }, + { + "drilldown" : "W. Luis Mochan", + "y" : 3, + "name" : "W. Luis Mochan" + } + ], + "name" : "The Weekly Challenge - 197" + } + ], + "legend" : { + "enabled" : 0 + }, + "yAxis" : { + "title" : { + "text" : "Total Solutions" + } + }, + "xAxis" : { + "type" : "category" } } diff --git a/stats/pwc-language-breakdown-summary.json b/stats/pwc-language-breakdown-summary.json index bf3b56d894..fc504d7ed4 100644 --- a/stats/pwc-language-breakdown-summary.json +++ b/stats/pwc-language-breakdown-summary.json @@ -1,9 +1,12 @@ { - "subtitle" : { - "text" : "Last updated at 2023-01-02 03:56:19 GMT" + "yAxis" : { + "title" : { + "text" : null + }, + "min" : 0 }, - "chart" : { - "type" : "column" + "legend" : { + "enabled" : "false" }, "xAxis" : { "labels" : { @@ -14,41 +17,41 @@ }, "type" : "category" }, - "legend" : { - "enabled" : "false" - }, "tooltip" : { "pointFormat" : "{point.y:.0f}" }, - "yAxis" : { - "min" : 0, - "title" : { - "text" : null - } + "chart" : { + "type" : "column" + }, + "subtitle" : { + "text" : "Last updated at 2023-01-02 04:53:27 GMT" + }, + "title" : { + "text" : "The Weekly Challenge Contributions [2019 - 2022]" }, "series" : [ { "name" : "Contributions", "dataLabels" : { + "rotation" : -90, + "color" : "#FFFFFF", + "y" : 10, "style" : { - "fontSize" : "13px", - "fontFamily" : "Verdana, sans-serif" + "fontFamily" : "Verdana, sans-serif", + "fontSize" : "13px" }, "format" : "{point.y:.0f}", "align" : "right", - "y" : 10, - "rotation" : -90, - "color" : "#FFFFFF", "enabled" : "true" }, "data" : [ [ "Blog", - 3154 + 3155 ], [ "Perl", - 9696 + 9698 ], [ "Raku", @@ -56,8 +59,5 @@ ] ] } - ], - "title" : { - "text" : "The Weekly Challenge Contributions [2019 - 2022]" - } + ] } diff --git a/stats/pwc-language-breakdown.json b/stats/pwc-language-breakdown.json index 9c9ad1efa8..2adeae46ee 100644 --- a/stats/pwc-language-breakdown.json +++ b/stats/pwc-language-breakdown.json @@ -1,1022 +1,15 @@ { - "yAxis" : { - "title" : { - "text" : "Total Solutions" - } - }, - "tooltip" : { - "followPointer" : "true", - "pointFormat" : "Challenge {point.name}: {point.y:f}
", - "headerFormat" : "" + "subtitle" : { + "text" : "Click the columns to drilldown the language breakdown. Last updated at 2023-01-02 04:53:27 GMT" }, "title" : { "text" : "The Weekly Challenge Language" }, - "series" : [ - { - "colorByPoint" : "true", - "data" : [ - { - "drilldown" : "001", - "y" : 161, - "name" : "#001" - }, - { - "name" : "#002", - "y" : 125, - "drilldown" : "002" - }, - { - "name" : "#003", - "y" : 83, - "drilldown" : "003" - }, - { - "drilldown" : "004", - "y" : 99, - "name" : "#004" - }, - { - "name" : "#005", - "drilldown" : "005", - "y" : 78 - }, - { - "drilldown" : "006", - "y" : 58, - "name" : "#006" - }, - { - "name" : "#007", - "drilldown" : "007", - "y" : 65 - }, - { - "name" : "#008", - "drilldown" : "008", - "y" : 78 - }, - { - "drilldown" : "009", - "y" : 76, - "name" : "#009" - }, - { - "drilldown" : "010", - "y" : 65, - "name" : "#010" - }, - { - "y" : 85, - "drilldown" : "011", - "name" : "#011" - }, - { - "name" : "#012", - "drilldown" : "012", - "y" : 89 - }, - { - "y" : 85, - "drilldown" : "013", - "name" : "#013" - }, - { - "y" : 101, - "drilldown" : "014", - "name" : "#014" - }, - { - "name" : "#015", - "y" : 99, - "drilldown" : "015" - }, - { - "name" : "#016", - "y" : 71, - "drilldown" : "016" - }, - { - "name" : "#017", - "y" : 84, - "drilldown" : "017" - }, - { - "name" : "#018", - "y" : 81, - "drilldown" : "018" - }, - { - "name" : "#019", - "y" : 103, - "drilldown" : "019" - }, - { - "name" : "#020", - "drilldown" : "020", - "y" : 101 - }, - { - "name" : "#021", - "y" : 72, - "drilldown" : "021" - }, - { - "drilldown" : "022", - "y" : 68, - "name" : "#022" - }, - { - "name" : "#023", - "y" : 97, - "drilldown" : "023" - }, - { - "name" : "#024", - "y" : 75, - "drilldown" : "024" - }, - { - "name" : "#025", - "y" : 59, - "drilldown" : "025" - }, - { - "drilldown" : "026", - "y" : 74, - "name" : "#026" - }, - { - "drilldown" : "027", - "y" : 62, - "name" : "#027" - }, - { - "name" : "#028", - "y" : 82, - "drilldown" : "028" - }, - { - "y" : 81, - "drilldown" : "029", - "name" : "#029" - }, - { - "y" : 119, - "drilldown" : "030", - "name" : "#030" - }, - { - "y" : 91, - "drilldown" : "031", - "name" : "#031" - }, - { - "name" : "#032", - "y" : 96, - "drilldown" : "032" - }, - { - "y" : 112, - "drilldown" : "033", - "name" : "#033" - }, - { - "y" : 66, - "drilldown" : "034", - "name" : "#034" - }, - { - "name" : "#035", - "drilldown" : "035", - "y" : 66 - }, - { - "name" : "#036", - "y" : 70, - "drilldown" : "036" - }, - { - "name" : "#037", - "y" : 69, - "drilldown" : "037" - }, - { - "drilldown" : "038", - "y" : 70, - "name" : "#038" - }, - { - "drilldown" : "039", - "y" : 64, - "name" : "#039" - }, - { - "y" : 75, - "drilldown" : "040", - "name" : "#040" - }, - { - "y" : 78, - "drilldown" : "041", - "name" : "#041" - }, - { - "name" : "#042", - "drilldown" : "042", - "y" : 94 - }, - { - "drilldown" : "043", - "y" : 70, - "name" : "#043" - }, - { - "name" : "#044", - "y" : 87, - "drilldown" : "044" - }, - { - "name" : "#045", - "y" : 98, - "drilldown" : "045" - }, - { - "name" : "#046", - "drilldown" : "046", - "y" : 89 - }, - { - "name" : "#047", - "y" : 86, - "drilldown" : "047" - }, - { - "y" : 110, - "drilldown" : "048", - "name" : "#048" - }, - { - "y" : 91, - "drilldown" : "049", - "name" : "#049" - }, - { - "name" : "#050", - "drilldown" : "050", - "y" : 100 - }, - { - "y" : 91, - "drilldown" : "051", - "name" : "#051" - }, - { - "name" : "#052", - "drilldown" : "052", - "y" : 93 - }, - { - "drilldown" : "053", - "y" : 103, - "name" : "#053" - }, - { - "name" : "#054", - "y" : 105, - "drilldown" : "054" - }, - { - "name" : "#055", - "y" : 90, - "drilldown" : "055" - }, - { - "drilldown" : "056", - "y" : 97, - "name" : "#056" - }, - { - "name" : "#057", - "drilldown" : "057", - "y" : 82 - }, - { - "name" : "#058", - "drilldown" : "058", - "y" : 71 - }, - { - "y" : 91, - "drilldown" : "059", - "name" : "#059" - }, - { - "name" : "#060", - "y" : 87, - "drilldown" : "060" - }, - { - "y" : 83, - "drilldown" : "061", - "name" : "#061" - }, - { - "y" : 60, - "drilldown" : "062", - "name" : "#062" - }, - { - "y" : 91, - "drilldown" : "063", - "name" : "#063" - }, - { - "name" : "#064", - "drilldown" : "064", - "y" : 82 - }, - { - "y" : 75, - "drilldown" : "065", - "name" : "#065" - }, - { - "drilldown" : "066", - "y" : 86, - "name" : "#066" - }, - { - "drilldown" : "067", - "y" : 92, - "name" : "#067" - }, - { - "y" : 77, - "drilldown" : "068", - "name" : "#068" - }, - { - "name" : "#069", - "drilldown" : "069", - "y" : 85 - }, - { - "name" : "#070", - "drilldown" : "070", - "y" : 95 - }, - { - "name" : "#071", - "drilldown" : "071", - "y" : 80 - }, - { - "name" : "#072", - "y" : 114, - "drilldown" : "072" - }, - { - "name" : "#073", - "y" : 112, - "drilldown" : "073" - }, - { - "y" : 117, - "drilldown" : "074", - "name" : "#074" - }, - { - "drilldown" : "075", - "y" : 117, - "name" : "#075" - }, - { - "drilldown" : "076", - "y" : 101, - "name" : "#076" - }, - { - "name" : "#077", - "y" : 100, - "drilldown" : "077" - }, - { - "y" : 127, - "drilldown" : "078", - "name" : "#078" - }, - { - "drilldown" : "079", - "y" : 122, - "name" : "#079" - }, - { - "drilldown" : "080", - "y" : 127, - "name" : "#080" - }, - { - "drilldown" : "081", - "y" : 114, - "name" : "#081" - }, - { - "name" : "#082", - "y" : 114, - "drilldown" : "082" - }, - { - "drilldown" : "083", - "y" : 127, - "name" : "#083" - }, - { - "drilldown" : "084", - "y" : 119, - "name" : "#084" - }, - { - "drilldown" : "085", - "y" : 114, - "name" : "#085" - }, - { - "name" : "#086", - "y" : 104, - "drilldown" : "086" - }, - { - "y" : 101, - "drilldown" : "087", - "name" : "#087" - }, - { - "y" : 121, - "drilldown" : "088", - "name" : "#088" - }, - { - "name" : "#089", - "y" : 113, - "drilldown" : "089" - }, - { - "drilldown" : "090", - "y" : 113, - "name" : "#090" - }, - { - "name" : "#091", - "y" : 108, - "drilldown" : "091" - }, - { - "drilldown" : "092", - "y" : 98, - "name" : "#092" - }, - { - "y" : 87, - "drilldown" : "093", - "name" : "#093" - }, - { - "name" : "#094", - "y" : 87, - "drilldown" : "094" - }, - { - "drilldown" : "095", - "y" : 108, - "name" : "#095" - }, - { - "y" : 108, - "drilldown" : "096", - "name" : "#096" - }, - { - "drilldown" : "097", - "y" : 111, - "name" : "#097" - }, - { - "name" : "#098", - "drilldown" : "098", - "y" : 108 - }, - { - "y" : 97, - "drilldown" : "099", - "name" : "#099" - }, - { - "name" : "#100", - "drilldown" : "100", - "y" : 120 - }, - { - "y" : 83, - "drilldown" : "101", - "name" : "#101" - }, - { - "drilldown" : "102", - "y" : 90, - "name" : "#102" - }, - { - "name" : "#103", - "y" : 79, - "drilldown" : "103" - }, - { - "drilldown" : "104", - "y" : 85, - "name" : "#104" - }, - { - "y" : 75, - "drilldown" : "105", - "name" : "#105" - }, - { - "drilldown" : "106", - "y" : 97, - "name" : "#106" - }, - { - "name" : "#107", - "y" : 90, - "drilldown" : "107" - }, - { - "drilldown" : "108", - "y" : 94, - "name" : "#108" - }, - { - "drilldown" : "109", - "y" : 107, - "name" : "#109" - }, - { - "name" : "#110", - "drilldown" : "110", - "y" : 108 - }, - { - "drilldown" : "111", - "y" : 91, - "name" : "#111" - }, - { - "y" : 92, - "drilldown" : "112", - "name" : "#112" - }, - { - "name" : "#113", - "y" : 92, - "drilldown" : "113" - }, - { - "name" : "#114", - "drilldown" : "114", - "y" : 108 - }, - { - "name" : "#115", - "drilldown" : "115", - "y" : 96 - }, - { - "name" : "#116", - "drilldown" : "116", - "y" : 95 - }, - { - "drilldown" : "117", - "y" : 97, - "name" : "#117" - }, - { - "name" : "#118", - "y" : 83, - "drilldown" : "118" - }, - { - "y" : 125, - "drilldown" : "119", - "name" : "#119" - }, - { - "drilldown" : "120", - "y" : 116, - "name" : "#120" - }, - { - "name" : "#121", - "drilldown" : "121", - "y" : 92 - }, - { - "drilldown" : "122", - "y" : 110, - "name" : "#122" - }, - { - "name" : "#123", - "y" : 105, - "drilldown" : "123" - }, - { - "name" : "#124", - "y" : 85, - "drilldown" : "124" - }, - { - "y" : 63, - "drilldown" : "125", - "name" : "#125" - }, - { - "drilldown" : "126", - "y" : 113, - "name" : "#126" - }, - { - "y" : 110, - "drilldown" : "127", - "name" : "#127" - }, - { - "drilldown" : "128", - "y" : 71, - "name" : "#128" - }, - { - "drilldown" : "129", - "y" : 50, - "name" : "#129" - }, - { - "drilldown" : "130", - "y" : 73, - "name" : "#130" - }, - { - "drilldown" : "131", - "y" : 91, - "name" : "#131" - }, - { - "name" : "#132", - "drilldown" : "132", - "y" : 78 - }, - { - "y" : 95, - "drilldown" : "133", - "name" : "#133" - }, - { - "name" : "#134", - "drilldown" : "134", - "y" : 94 - }, - { - "drilldown" : "135", - "y" : 104, - "name" : "#135" - }, - { - "y" : 95, - "drilldown" : "136", - "name" : "#136" - }, - { - "y" : 100, - "drilldown" : "137", - "name" : "#137" - }, - { - "name" : "#138", - "drilldown" : "138", - "y" : 102 - }, - { - "y" : 97, - "drilldown" : "139", - "name" : "#139" - }, - { - "name" : "#140", - "y" : 103, - "drilldown" : "140" - }, - { - "drilldown" : "141", - "y" : 102, - "name" : "#141" - }, - { - "drilldown" : "142", - "y" : 83, - "name" : "#142" - }, - { - "name" : "#143", - "y" : 81, - "drilldown" : "143" - }, - { - "y" : 86, - "drilldown" : "144", - "name" : "#144" - }, - { - "drilldown" : "145", - "y" : 93, - "name" : "#145" - }, - { - "drilldown" : "146", - "y" : 105, - "name" : "#146" - }, - { - "name" : "#147", - "drilldown" : "147", - "y" : 106 - }, - { - "y" : 92, - "drilldown" : "148", - "name" : "#148" - }, - { - "y" : 88, - "drilldown" : "149", - "name" : "#149" - }, - { - "name" : "#150", - "y" : 108, - "drilldown" : "150" - }, - { - "name" : "#151", - "y" : 77, - "drilldown" : "151" - }, - { - "drilldown" : "152", - "y" : 80, - "name" : "#152" - }, - { - "drilldown" : "153", - "y" : 97, - "name" : "#153" - }, - { - "drilldown" : "154", - "y" : 108, - "name" : "#154" - }, - { - "drilldown" : "155", - "y" : 99, - "name" : "#155" - }, - { - "name" : "#156", - "drilldown" : "156", - "y" : 98 - }, - { - "name" : "#157", - "drilldown" : "157", - "y" : 97 - }, - { - "name" : "#158", - "drilldown" : "158", - "y" : 107 - }, - { - "drilldown" : "159", - "y" : 92, - "name" : "#159" - }, - { - "y" : 121, - "drilldown" : "160", - "name" : "#160" - }, - { - "name" : "#161", - "drilldown" : "161", - "y" : 102 - }, - { - "drilldown" : "162", - "y" : 93, - "name" : "#162" - }, - { - "name" : "#163", - "drilldown" : "163", - "y" : 116 - }, - { - "y" : 118, - "drilldown" : "164", - "name" : "#164" - }, - { - "y" : 76, - "drilldown" : "165", - "name" : "#165" - }, - { - "name" : "#166", - "y" : 77, - "drilldown" : "166" - }, - { - "y" : 73, - "drilldown" : "167", - "name" : "#167" - }, - { - "name" : "#168", - "drilldown" : "168", - "y" : 96 - }, - { - "y" : 105, - "drilldown" : "169", - "name" : "#169" - }, - { - "drilldown" : "170", - "y" : 100, - "name" : "#170" - }, - { - "name" : "#171", - "y" : 109, - "drilldown" : "171" - }, - { - "name" : "#172", - "drilldown" : "172", - "y" : 92 - }, - { - "drilldown" : "173", - "y" : 109, - "name" : "#173" - }, - { - "name" : "#174", - "y" : 99, - "drilldown" : "174" - }, - { - "drilldown" : "175", - "y" : 110, - "name" : "#175" - }, - { - "y" : 109, - "drilldown" : "176", - "name" : "#176" - }, - { - "name" : "#177", - "y" : 101, - "drilldown" : "177" - }, - { - "drilldown" : "178", - "y" : 63, - "name" : "#178" - }, - { - "drilldown" : "179", - "y" : 68, - "name" : "#179" - }, - { - "name" : "#180", - "drilldown" : "180", - "y" : 113 - }, - { - "name" : "#181", - "y" : 95, - "drilldown" : "181" - }, - { - "drilldown" : "182", - "y" : 106, - "name" : "#182" - }, - { - "drilldown" : "183", - "y" : 85, - "name" : "#183" - }, - { - "name" : "#184", - "drilldown" : "184", - "y" : 103 - }, - { - "y" : 113, - "drilldown" : "185", - "name" : "#185" - }, - { - "name" : "#186", - "y" : 109, - "drilldown" : "186" - }, - { - "name" : "#187", - "drilldown" : "187", - "y" : 105 - }, - { - "name" : "#188", - "drilldown" : "188", - "y" : 115 - }, - { - "drilldown" : "189", - "y" : 113, - "name" : "#189" - }, - { - "y" : 107, - "drilldown" : "190", - "name" : "#190" - }, - { - "name" : "#191", - "y" : 113, - "drilldown" : "191" - }, - { - "drilldown" : "192", - "y" : 123, - "name" : "#192" - }, - { - "y" : 108, - "drilldown" : "193", - "name" : "#193" - }, - { - "name" : "#194", - "y" : 109, - "drilldown" : "194" - }, - { - "y" : 104, - "drilldown" : "195", - "name" : "#195" - }, - { - "name" : "#196", - "drilldown" : "196", - "y" : 100 - }, - { - "y" : 91, - "drilldown" : "197", - "name" : "#197" - } - ], - "name" : "The Weekly Challenge Languages" - } - ], - "plotOptions" : { - "series" : { - "dataLabels" : { - "enabled" : 1, - "format" : "{point.y}" - }, - "borderWidth" : 0 - } - }, "drilldown" : { "series" : [ { + "name" : "001", + "id" : "001", "data" : [ [ "Perl", @@ -1030,11 +23,11 @@ "Blog", 11 ] - ], - "name" : "001", - "id" : "001" + ] }, { + "id" : "002", + "name" : "002", "data" : [ [ "Perl", @@ -1048,11 +41,11 @@ "Blog", 10 ] - ], - "name" : "002", - "id" : "002" + ] }, { + "id" : "003", + "name" : "003", "data" : [ [ "Perl", @@ -1066,9 +59,7 @@ "Blog", 9 ] - ], - "name" : "003", - "id" : "003" + ] }, { "data" : [ @@ -1089,8 +80,6 @@ "name" : "004" }, { - "name" : "005", - "id" : "005", "data" : [ [ "Perl", @@ -1104,9 +93,13 @@ "Blog", 12 ] - ] + ], + "id" : "005", + "name" : "005" }, { + "name" : "006", + "id" : "006", "data" : [ [ "Perl", @@ -1120,9 +113,7 @@ "Blog", 7 ] - ], - "name" : "006", - "id" : "006" + ] }, { "id" : "007", @@ -1143,6 +134,8 @@ ] }, { + "name" : "008", + "id" : "008", "data" : [ [ "Perl", @@ -1156,9 +149,7 @@ "Blog", 12 ] - ], - "name" : "008", - "id" : "008" + ] }, { "data" : [ @@ -1175,8 +166,8 @@ 13 ] ], - "name" : "009", - "id" : "009" + "id" : "009", + "name" : "009" }, { "data" : [ @@ -1193,8 +184,8 @@ 11 ] ], - "name" : "010", - "id" : "010" + "id" : "010", + "name" : "010" }, { "id" : "011", @@ -1215,8 +206,8 @@ ] }, { - "id" : "012", "name" : "012", + "id" : "012", "data" : [ [ "Perl", @@ -1251,8 +242,8 @@ "name" : "013" }, { - "name" : "014", "id" : "014", + "name" : "014", "data" : [ [ "Perl", @@ -1269,8 +260,8 @@ ] }, { - "name" : "015", "id" : "015", + "name" : "015", "data" : [ [ "Perl", @@ -1287,6 +278,8 @@ ] }, { + "id" : "016", + "name" : "016", "data" : [ [ "Perl", @@ -1300,13 +293,11 @@ "Blog", 12 ] - ], - "id" : "016", - "name" : "016" + ] }, { - "name" : "017", "id" : "017", + "name" : "017", "data" : [ [ "Perl", @@ -1323,6 +314,8 @@ ] }, { + "id" : "018", + "name" : "018", "data" : [ [ "Perl", @@ -1336,13 +329,11 @@ "Blog", 14 ] - ], - "id" : "018", - "name" : "018" + ] }, { - "name" : "019", "id" : "019", + "name" : "019", "data" : [ [ "Perl", @@ -1377,8 +368,6 @@ ] }, { - "name" : "021", - "id" : "021", "data" : [ [ "Perl", @@ -1392,7 +381,9 @@ "Blog", 10 ] - ] + ], + "id" : "021", + "name" : "021" }, { "data" : [ @@ -1409,10 +400,12 @@ 10 ] ], - "id" : "022", - "name" : "022" + "name" : "022", + "id" : "022" }, { + "id" : "023", + "name" : "023", "data" : [ [ "Perl", @@ -1426,11 +419,11 @@ "Blog", 12 ] - ], - "name" : "023", - "id" : "023" + ] }, { + "name" : "024", + "id" : "024", "data" : [ [ "Perl", @@ -1444,13 +437,9 @@ "Blog", 11 ] - ], - "name" : "024", - "id" : "024" + ] }, { - "name" : "025", - "id" : "025", "data" : [ [ "Perl", @@ -1464,11 +453,11 @@ "Blog", 12 ] - ] + ], + "id" : "025", + "name" : "025" }, { - "id" : "026", - "name" : "026", "data" : [ [ "Perl", @@ -1482,7 +471,9 @@ "Blog", 10 ] - ] + ], + "id" : "026", + "name" : "026" }, { "id" : "027", @@ -1503,6 +494,8 @@ ] }, { + "name" : "028", + "id" : "028", "data" : [ [ "Perl", @@ -1516,9 +509,7 @@ "Blog", 9 ] - ], - "name" : "028", - "id" : "028" + ] }, { "id" : "029", @@ -1557,6 +548,8 @@ ] }, { + "name" : "031", + "id" : "031", "data" : [ [ "Perl", @@ -1570,9 +563,7 @@ "Blog", 9 ] - ], - "id" : "031", - "name" : "031" + ] }, { "name" : "032", @@ -1593,8 +584,8 @@ ] }, { - "id" : "033", "name" : "033", + "id" : "033",