From 72115ca8dee469436857991c88d7002158725057 Mon Sep 17 00:00:00 2001 From: Mohammad Sajid Anwar Date: Tue, 19 Aug 2025 12:12:35 +0100 Subject: - Added solutions by Eric Cheung. - Added solutions by Jan Krnavek. - Added solutions by Andrew Shitov. - Added solutions by Mark Anderson. - Added solutions by E. Choroba. - Added solutions by Simon Proctor. - Added solutions by Andreas Mahnke. - Added solutions by Feng Chang. - Added solutions by PokGoPun. - Added solutions by Wanderdoc. - Added solutions by Thomas Kohler. - Added solutions by Conor Hoekstra. - Added solutions by Ali Moradi. - Added solutions by W. Luis Mochan. --- challenge-332/perlboy1967/perl/ch-1.pl | 29 ++ challenge-332/perlboy1967/perl/ch-2.pl | 34 ++ challenge-332/perlboy1967/perl/ch1.pl | 29 -- challenge-332/perlboy1967/perl/ch2.pl | 34 -- challenge-333/perlboy1967/perl/ch-1.pl | 51 +++ challenge-333/perlboy1967/perl/ch-2.pl | 37 ++ challenge-333/perlboy1967/perl/ch1.pl | 51 --- challenge-333/perlboy1967/perl/ch2.pl | 37 -- challenge-334/perlboy1967/perl/ch-1.pl | 33 ++ challenge-334/perlboy1967/perl/ch-2.pl | 50 +++ challenge-334/perlboy1967/perl/ch1.pl | 33 -- challenge-334/perlboy1967/perl/ch2.pl | 50 --- challenge-335/eric-cheung/python/ch-1.py | 25 ++ challenge-335/eric-cheung/python/ch-2.py | 31 ++ challenge-335/perlboy1967/perl/ch-1.pl | 41 ++ challenge-335/perlboy1967/perl/ch-2.pl | 58 +++ challenge-335/perlboy1967/perl/ch1.pl | 41 -- challenge-335/perlboy1967/perl/ch2.pl | 58 --- stats/pwc-challenge-332.json | 17 +- stats/pwc-challenge-333.json | 17 +- stats/pwc-challenge-334.json | 604 ++++++++++++++++++++++++++++++ stats/pwc-current.json | 365 +----------------- stats/pwc-language-breakdown-2019.json | 2 +- stats/pwc-language-breakdown-2020.json | 2 +- stats/pwc-language-breakdown-2021.json | 2 +- stats/pwc-language-breakdown-2022.json | 2 +- stats/pwc-language-breakdown-2023.json | 2 +- stats/pwc-language-breakdown-2024.json | 2 +- stats/pwc-language-breakdown-2025.json | 39 +- stats/pwc-language-breakdown-summary.json | 8 +- stats/pwc-leaders.json | 110 +++--- stats/pwc-summary-1-30.json | 10 +- stats/pwc-summary-121-150.json | 2 +- stats/pwc-summary-151-180.json | 4 +- stats/pwc-summary-181-210.json | 4 +- stats/pwc-summary-211-240.json | 2 +- stats/pwc-summary-241-270.json | 2 +- stats/pwc-summary-271-300.json | 8 +- stats/pwc-summary-301-330.json | 8 +- stats/pwc-summary-31-60.json | 2 +- stats/pwc-summary-61-90.json | 6 +- stats/pwc-summary-91-120.json | 4 +- stats/pwc-summary.json | 34 +- stats/pwc-yearly-language-summary.json | 10 +- 44 files changed, 1177 insertions(+), 813 deletions(-) create mode 100755 challenge-332/perlboy1967/perl/ch-1.pl create mode 100755 challenge-332/perlboy1967/perl/ch-2.pl delete mode 100755 challenge-332/perlboy1967/perl/ch1.pl delete mode 100755 challenge-332/perlboy1967/perl/ch2.pl create mode 100755 challenge-333/perlboy1967/perl/ch-1.pl create mode 100755 challenge-333/perlboy1967/perl/ch-2.pl delete mode 100755 challenge-333/perlboy1967/perl/ch1.pl delete mode 100755 challenge-333/perlboy1967/perl/ch2.pl create mode 100755 challenge-334/perlboy1967/perl/ch-1.pl create mode 100755 challenge-334/perlboy1967/perl/ch-2.pl delete mode 100755 challenge-334/perlboy1967/perl/ch1.pl delete mode 100755 challenge-334/perlboy1967/perl/ch2.pl create mode 100755 challenge-335/eric-cheung/python/ch-1.py create mode 100755 challenge-335/eric-cheung/python/ch-2.py create mode 100755 challenge-335/perlboy1967/perl/ch-1.pl create mode 100755 challenge-335/perlboy1967/perl/ch-2.pl delete mode 100755 challenge-335/perlboy1967/perl/ch1.pl delete mode 100755 challenge-335/perlboy1967/perl/ch2.pl create mode 100644 stats/pwc-challenge-334.json diff --git a/challenge-332/perlboy1967/perl/ch-1.pl b/challenge-332/perlboy1967/perl/ch-1.pl new file mode 100755 index 0000000000..0bdbeb7207 --- /dev/null +++ b/challenge-332/perlboy1967/perl/ch-1.pl @@ -0,0 +1,29 @@ +#!/bin/perl + +=pod + +L + +Author: Niels 'PerlBoy' van Dijke + +Task 1: Binary Date +Submitted by: Mohammad Sajid Anwar + +You are given a date in the format YYYY-MM-DD. + +Write a script to convert it into binary date. + +=cut + +use Test2::V0 qw(-no_srand); +use exact 'v5.32', -signatures; + +sub binaryDate ($date) { + $date =~ s/(\d+)(\D+)(\d+)(\D+)(\d+)/sprintf("%b$2%b$4%b",$1,$3,$5)/er; +} + +is(binaryDate('2025-07-26'),'11111101001-111-11010','Example 1'); +is(binaryDate('2000-02-02'),'11111010000-10-10','Example 2'); +is(binaryDate('2024-12-31'),'11111101000-1100-11111','Example 3'); + +done_testing; diff --git a/challenge-332/perlboy1967/perl/ch-2.pl b/challenge-332/perlboy1967/perl/ch-2.pl new file mode 100755 index 0000000000..66583498e5 --- /dev/null +++ b/challenge-332/perlboy1967/perl/ch-2.pl @@ -0,0 +1,34 @@ +#!/bin/perl + +=pod + +L + +Author: Niels 'PerlBoy' van Dijke + +Task 2: Odd Letters +Submitted by: Mohammad Sajid Anwar + +You are given a string. + +Write a script to find out if each letter in the given string appeared odd number of times. + +=cut + +use Test2::V0 qw(-no_srand); +use exact 'v5.32', -signatures; + +use boolean; +use List::MoreUtils qw(frequency all); + +sub oddLetters ($str) { + my %f = frequency(split //, $str); + boolean all { $_ % 2 == 1 } values %f; +} + +is(oddLetters('weekly'),false,'Example 1'); +is(oddLetters('perl'),true,'Example 2'); +is(oddLetters('challenge'),false,'Example 3'); +is(oddLetters('PerlBoy'),true,'Own example'); + +done_testing; diff --git a/challenge-332/perlboy1967/perl/ch1.pl b/challenge-332/perlboy1967/perl/ch1.pl deleted file mode 100755 index 0bdbeb7207..0000000000 --- a/challenge-332/perlboy1967/perl/ch1.pl +++ /dev/null @@ -1,29 +0,0 @@ -#!/bin/perl - -=pod - -L - -Author: Niels 'PerlBoy' van Dijke - -Task 1: Binary Date -Submitted by: Mohammad Sajid Anwar - -You are given a date in the format YYYY-MM-DD. - -Write a script to convert it into binary date. - -=cut - -use Test2::V0 qw(-no_srand); -use exact 'v5.32', -signatures; - -sub binaryDate ($date) { - $date =~ s/(\d+)(\D+)(\d+)(\D+)(\d+)/sprintf("%b$2%b$4%b",$1,$3,$5)/er; -} - -is(binaryDate('2025-07-26'),'11111101001-111-11010','Example 1'); -is(binaryDate('2000-02-02'),'11111010000-10-10','Example 2'); -is(binaryDate('2024-12-31'),'11111101000-1100-11111','Example 3'); - -done_testing; diff --git a/challenge-332/perlboy1967/perl/ch2.pl b/challenge-332/perlboy1967/perl/ch2.pl deleted file mode 100755 index 66583498e5..0000000000 --- a/challenge-332/perlboy1967/perl/ch2.pl +++ /dev/null @@ -1,34 +0,0 @@ -#!/bin/perl - -=pod - -L - -Author: Niels 'PerlBoy' van Dijke - -Task 2: Odd Letters -Submitted by: Mohammad Sajid Anwar - -You are given a string. - -Write a script to find out if each letter in the given string appeared odd number of times. - -=cut - -use Test2::V0 qw(-no_srand); -use exact 'v5.32', -signatures; - -use boolean; -use List::MoreUtils qw(frequency all); - -sub oddLetters ($str) { - my %f = frequency(split //, $str); - boolean all { $_ % 2 == 1 } values %f; -} - -is(oddLetters('weekly'),false,'Example 1'); -is(oddLetters('perl'),true,'Example 2'); -is(oddLetters('challenge'),false,'Example 3'); -is(oddLetters('PerlBoy'),true,'Own example'); - -done_testing; diff --git a/challenge-333/perlboy1967/perl/ch-1.pl b/challenge-333/perlboy1967/perl/ch-1.pl new file mode 100755 index 0000000000..7ce19716dc --- /dev/null +++ b/challenge-333/perlboy1967/perl/ch-1.pl @@ -0,0 +1,51 @@ +#!/bin/perl + +=pod + +L + +Author: Niels 'PerlBoy' van Dijke + +Task 1: Straight Line +Submitted by: Mohammad Sajid Anwar + +You are given a list of co-ordinates. + +Write a script to find out if the given points make a straight line. + +=cut + +use Test2::V0 qw(-no_srand); +use exact 'v5.32', -signatures; + +use boolean; +use List::MoreUtils qw(all uniq); + +sub areInStraightLine (@p) { + my @u = map { [split / /] } uniq map { $$_[0].' '.$$_[1] } @p ; + return true if @u == 1 or @u == 2; + + my ($p1,$p2) = (shift @u, shift @u); + my ($x1,$y1,$x2,$y2) = ($$p1[0],$$p1[1],$$p2[0],$$p2[1]); + + if ($x1 == $x2) { + boolean(all { $$_[0] == $x1 } @u); + } else { + my $a = ($y2 - $y1) / ($x2 - $x1); + my $b = $y1 - $a * $x1; + boolean(all { $$_[1] == $a * $$_[0] + $b } @u); + } +} + +is(areInStraightLine([2,1],[2,3],[2,5]),true,'Example 1'); +is(areInStraightLine([1,4],[3,4],[10,4]),true,'Example 2'); +is(areInStraightLine([0,0],[1,1],[2,3]),false,'Example 3'); +is(areInStraightLine([1,1],[1,1],[1,1]),true,'Example 4'); +my $m = 1_000_000; +is(areInStraightLine([1*$m,1*$m],[2*$m,2*$m],[3*$m,3*$m]),true,'Example 5'); + +is(areInStraightLine([1,1],[1,1],[2,2]),true,'Own example 1'); +is(areInStraightLine([1,1],[1,1],[2,2],[3,3]),true,'Own example 2'); +is(areInStraightLine([1,1],[1,1],[2,2],[3,3],[4,5]),false,'Own example 3'); + +done_testing; diff --git a/challenge-333/perlboy1967/perl/ch-2.pl b/challenge-333/perlboy1967/perl/ch-2.pl new file mode 100755 index 0000000000..82ba9107b6 --- /dev/null +++ b/challenge-333/perlboy1967/perl/ch-2.pl @@ -0,0 +1,37 @@ +#!/bin/perl + +=pod + +L + +Author: Niels 'PerlBoy' van Dijke + +Task 2: Duplicate Zeros +Submitted by: Mohammad Sajid Anwar + +You are given an array of integers. + +Write a script to duplicate each occurrence of zero, shifting the remaining +elements to the right. The elements beyond the length of the original array +are not written. + +=cut + +use Test2::V0 qw(-no_srand); +use exact 'v5.32', -signatures; + +sub duplicateZeros (@ints) { + my @r; + for (@ints) { + push(@r,$_ ? $_ : (0,0)); last if (@r >= @ints) ; + } + @r[0..$#ints]; +} + +is([duplicateZeros(1,0,2,3,0,4,5,0)],[1,0,0,2,3,0,0,4],'Example 1'); +is([duplicateZeros(1,2,3)],[1,2,3],'Example 2'); +is([duplicateZeros(1,2,3,0)],[1,2,3,0],'Example 3'); +is([duplicateZeros(0,0,1,2)],[0,0,0,0],'Example 4'); +is([duplicateZeros(1,2,0,3,4)],[1,2,0,0,3],'Example 5'); + +done_testing; diff --git a/challenge-333/perlboy1967/perl/ch1.pl b/challenge-333/perlboy1967/perl/ch1.pl deleted file mode 100755 index 7ce19716dc..0000000000 --- a/challenge-333/perlboy1967/perl/ch1.pl +++ /dev/null @@ -1,51 +0,0 @@ -#!/bin/perl - -=pod - -L - -Author: Niels 'PerlBoy' van Dijke - -Task 1: Straight Line -Submitted by: Mohammad Sajid Anwar - -You are given a list of co-ordinates. - -Write a script to find out if the given points make a straight line. - -=cut - -use Test2::V0 qw(-no_srand); -use exact 'v5.32', -signatures; - -use boolean; -use List::MoreUtils qw(all uniq); - -sub areInStraightLine (@p) { - my @u = map { [split / /] } uniq map { $$_[0].' '.$$_[1] } @p ; - return true if @u == 1 or @u == 2; - - my ($p1,$p2) = (shift @u, shift @u); - my ($x1,$y1,$x2,$y2) = ($$p1[0],$$p1[1],$$p2[0],$$p2[1]); - - if ($x1 == $x2) { - boolean(all { $$_[0] == $x1 } @u); - } else { - my $a = ($y2 - $y1) / ($x2 - $x1); - my $b = $y1 - $a * $x1; - boolean(all { $$_[1] == $a * $$_[0] + $b } @u); - } -} - -is(areInStraightLine([2,1],[2,3],[2,5]),true,'Example 1'); -is(areInStraightLine([1,4],[3,4],[10,4]),true,'Example 2'); -is(areInStraightLine([0,0],[1,1],[2,3]),false,'Example 3'); -is(areInStraightLine([1,1],[1,1],[1,1]),true,'Example 4'); -my $m = 1_000_000; -is(areInStraightLine([1*$m,1*$m],[2*$m,2*$m],[3*$m,3*$m]),true,'Example 5'); - -is(areInStraightLine([1,1],[1,1],[2,2]),true,'Own example 1'); -is(areInStraightLine([1,1],[1,1],[2,2],[3,3]),true,'Own example 2'); -is(areInStraightLine([1,1],[1,1],[2,2],[3,3],[4,5]),false,'Own example 3'); - -done_testing; diff --git a/challenge-333/perlboy1967/perl/ch2.pl b/challenge-333/perlboy1967/perl/ch2.pl deleted file mode 100755 index 82ba9107b6..0000000000 --- a/challenge-333/perlboy1967/perl/ch2.pl +++ /dev/null @@ -1,37 +0,0 @@ -#!/bin/perl - -=pod - -L - -Author: Niels 'PerlBoy' van Dijke - -Task 2: Duplicate Zeros -Submitted by: Mohammad Sajid Anwar - -You are given an array of integers. - -Write a script to duplicate each occurrence of zero, shifting the remaining -elements to the right. The elements beyond the length of the original array -are not written. - -=cut - -use Test2::V0 qw(-no_srand); -use exact 'v5.32', -signatures; - -sub duplicateZeros (@ints) { - my @r; - for (@ints) { - push(@r,$_ ? $_ : (0,0)); last if (@r >= @ints) ; - } - @r[0..$#ints]; -} - -is([duplicateZeros(1,0,2,3,0,4,5,0)],[1,0,0,2,3,0,0,4],'Example 1'); -is([duplicateZeros(1,2,3)],[1,2,3],'Example 2'); -is([duplicateZeros(1,2,3,0)],[1,2,3,0],'Example 3'); -is([duplicateZeros(0,0,1,2)],[0,0,0,0],'Example 4'); -is([duplicateZeros(1,2,0,3,4)],[1,2,0,0,3],'Example 5'); - -done_testing; diff --git a/challenge-334/perlboy1967/perl/ch-1.pl b/challenge-334/perlboy1967/perl/ch-1.pl new file mode 100755 index 0000000000..c2d7df67b9 --- /dev/null +++ b/challenge-334/perlboy1967/perl/ch-1.pl @@ -0,0 +1,33 @@ +#!/bin/perl + +=pod + +L + +Author: Niels 'PerlBoy' van Dijke + +Task 1: Range Sum +Submitted by: Mohammad Sajid Anwar + +You are given a list integers and pair of indices.. + +Write a script to return the sum of integers between the given indices (inclusive). + +=cut + +use Test2::V0 qw(-no_srand); +use exact 'v5.32', -signatures; + +use List::Util qw(sum0); + +sub rangeSum ($il,$ih,@ints) { + return sum0(@ints[$il..$ih]); +} + +is(rangeSum(0,2,-2,0,3,-5,2,-1),1,'Example 1'); +is(rangeSum(1,3,1,-2,3,-4,5),-3,'Example 2'); +is(rangeSum(3,4,1,0,2,-1,3),2,'Example 3'); +is(rangeSum(0,3,-5,4,-3,2,-1,0),-2,'Example 4'); +is(rangeSum(0,2,-1,0,2,-3,-2,1),1,'Example 5'); + +done_testing; diff --git a/challenge-334/perlboy1967/perl/ch-2.pl b/challenge-334/perlboy1967/perl/ch-2.pl new file mode 100755 index 0000000000..86a8dcbeb2 --- /dev/null +++ b/challenge-334/perlboy1967/perl/ch-2.pl @@ -0,0 +1,50 @@ +#!/bin/perl + +=pod + +L + +Author: Niels 'PerlBoy' van Dijke + +Task 2: Nearest Valid Point +Submitted by: Mohammad Sajid Anwar + +You are given current location as two integers: x and y. You are also given +a list of points on the grid. + +A point is considered valid if it shares either the same x-coordinate or the +same y-coordinate as the current location. + +Write a script to return the index of the valid point that has the smallest +Manhattan distance to the current location. If multiple valid points are tied +for the smallest distance, return the one with the lowest index. If no valid +points exist, return -1. + +|| The Manhattan distance between two points (x1, y1) and (x2, y2) is calculated +|| as: |x1 - x2| + |y1 - y2| + +=cut + +use Test2::V0 qw(-no_srand); +use exact 'v5.32', -signatures; + +use List::Util qw(min); +use List::MoreUtils qw(firstidx); + +sub numberOfSmallestManhattanDistance ($x,$y,@points) { + my $i = 0; + my @p = map { [@$_, abs($x-$$_[0]) + abs($y-$$_[1])] } + grep { $$_[0] == $x or $$_[1] == $y } + map { [@$_, $i++] } @points; + return -1 unless @p; + my @min = min(map { $$_[3] } @p); + $p[firstidx { $$_[3] == $min[0] } @p][2]; +} + +is(numberOfSmallestManhattanDistance(3,4,[1,2],[3,1],[2,4],[2,3]),2,'Example 1'); +is(numberOfSmallestManhattanDistance(2,5,[3,4],[2,3],[1,5],[2,5]),3,'Example 2'); +is(numberOfSmallestManhattanDistance(1,1,[2,2],[3,3],[4,4]),-1,'Example 3'); +is(numberOfSmallestManhattanDistance(0,0,[0,1],[1,0],[0,2],[2,0]),0,'Example 4'); +is(numberOfSmallestManhattanDistance(5,5,[5,6],[6,5],[5,4],[4,5]),0,'Example 5'); + +done_testing; diff --git a/challenge-334/perlboy1967/perl/ch1.pl b/challenge-334/perlboy1967/perl/ch1.pl deleted file mode 100755 index c2d7df67b9..0000000000 --- a/challenge-334/perlboy1967/perl/ch1.pl +++ /dev/null @@ -1,33 +0,0 @@ -#!/bin/perl - -=pod - -L - -Author: Niels 'PerlBoy' van Dijke - -Task 1: Range Sum -Submitted by: Mohammad Sajid Anwar - -You are given a list integers and pair of indices.. - -Write a script to return the sum of integers between the given indices (inclusive). - -=cut - -use Test2::V0 qw(-no_srand); -use exact 'v5.32', -signatures; - -use List::Util qw(sum0); - -sub rangeSum ($il,$ih,@ints) { - return sum0(@ints[$il..$ih]); -} - -is(rangeSum(0,2,-2,0,3,-5,2,-1),1,'Example 1'); -is(rangeSum(1,3,1,-2,3,-4,5),-3,'Example 2'); -is(rangeSum(3,4,1,0,2,-1,3),2,'Example 3'); -is(rangeSum(0,3,-5,4,-3,2,-1,0),-2,'Example 4'); -is(rangeSum(0,2,-1,0,2,-3,-2,1),1,'Example 5'); - -done_testing; diff --git a/challenge-334/perlboy1967/perl/ch2.pl b/challenge-334/perlboy1967/perl/ch2.pl deleted file mode 100755 index 86a8dcbeb2..0000000000 --- a/challenge-334/perlboy1967/perl/ch2.pl +++ /dev/null @@ -1,50 +0,0 @@ -#!/bin/perl - -=pod - -L - -Author: Niels 'PerlBoy' van Dijke - -Task 2: Nearest Valid Point -Submitted by: Mohammad Sajid Anwar - -You are given current location as two integers: x and y. You are also given -a list of points on the grid. - -A point is considered valid if it shares either the same x-coordinate or the -same y-coordinate as the current location. - -Write a script to return the index of the valid point that has the smallest -Manhattan distance to the current location. If multiple valid points are tied -for the smallest distance, return the one with the lowest index. If no valid -points exist, return -1. - -|| The Manhattan distance between two points (x1, y1) and (x2, y2) is calculated -|| as: |x1 - x2| + |y1 - y2| - -=cut - -use Test2::V0 qw(-no_srand); -use exact 'v5.32', -signatures; - -use List::Util qw(min); -use List::MoreUtils qw(firstidx); - -sub numberOfSmallestManhattanDistance ($x,$y,@points) { - my $i = 0; - my @p = map { [@$_, abs($x-$$_[0]) + abs($y-$$_[1])] } - grep { $$_[0] == $x or $$_[1] == $y } - map { [@$_, $i++] } @points; - return -1 unless @p; - my @min = min(map { $$_[3] } @p); - $p[firstidx { $$_[3] == $min[0] } @p][2]; -} - -is(numberOfSmallestManhattanDistance(3,4,[1,2],[3,1],[2,4],[2,3]),2,'Example 1'); -is(numberOfSmallestManhattanDistance(2,5,[3,4],[2,3],[1,5],[2,5]),3,'Example 2'); -is(numberOfSmallestManhattanDistance(1,1,[2,2],[3,3],[4,4]),-1,'Example 3'); -is(numberOfSmallestManhattanDistance(0,0,[0,1],[1,0],[0,2],[2,0]),0,'Example 4'); -is(numberOfSmallestManhattanDistance(5,5,[5,6],[6,5],[5,4],[4,5]),0,'Example 5'); - -done_testing; diff --git a/challenge-335/eric-cheung/python/ch-1.py b/challenge-335/eric-cheung/python/ch-1.py new file mode 100755 index 0000000000..15e9cde07a --- /dev/null +++ b/challenge-335/eric-cheung/python/ch-1.py @@ -0,0 +1,25 @@ + +## arrWords = ["bella", "label", "roller"] ## Example 1 +## arrWords = ["cool", "lock", "cook"] ## Example 2 +## arrWords = ["hello", "world", "pole"] ## Example 3 +## arrWords = ["abc", "def", "ghi"] ## Example 4 +arrWords = ["aab", "aac", "aaa"] ## Example 5 + +arrOutput = [] + +for charLoop in set(arrWords[0]): + bFound = True + + for strLoop in arrWords[1:]: + if charLoop not in strLoop: + bFound = False + break + + if not bFound: + continue + + nCount = min([strLoop.count(charLoop) for strLoop in arrWords]) + + arrOutput = arrOutput + list(charLoop * nCount) + +print (arrOutput) diff --git a/challenge-335/eric-cheung/python/ch-2.py b/challenge-335/eric-cheung/python/ch-2.py new file mode 100755 index 0000000000..2c3c9ea545 --- /dev/null +++ b/challenge-335/eric-cheung/python/ch-2.py @@ -0,0 +1,31 @@ + +def PlayerWin(arrInput, nNumMove): + for nRow in range(3): + if len(set([arrInput[nRow][nCol] for nCol in range(3)])) == 1 and arrInput[nRow][nRow] in ["A", "B"]: + return arrInput[nRow][nRow] + + for nCol in range(3): + if len(set([arrInput[nRow][nCol] for nRow in range(3)])) == 1 and arrInput[nCol][nCol] in ["A", "B"]: + return arrInput[nCol][nCol] + + if len(set([arrInput[nMax][nMax] for nMax in range(3)])) == 1 and arrInput[1][1] in ["A", "B"]: + return arrInput[1][1] + + if len(set([arrInput[nMax][2 - nMax] for nMax in range(3)])) == 1 and arrInput[1][1] in ["A", "B"]: + return arrInput[1][1] + + return ("Draw" if nNumMove == 9 else "Pending") + +## arrMoves = [[0, 0], [2, 0], [1, 1], [2, 1], [2, 2]] ## Example 1 +## arrMoves = [[0, 0], [1, 1], [0, 1], [0, 2], [1, 0], [2, 0]] ## Example 2 +## arrMoves = [[0, 0], [1, 1], [2, 0], [1, 0], [1, 2], [2, 1], [0, 1], [0, 2], [2, 2]] ## Example 3 +## arrMoves = [[0, 0], [1, 1]] ## Example 4 +arrMoves = [[1, 1], [0, 0], [2, 2], [0, 1], [1, 0], [0, 2]] ## Example 5 + +arrOutput = [["_", "_", "_"], ["_", "_", "_"], ["_", "_", "_"]] + +for nIndx, arrLoop in enumerate(arrMoves): + arrOutput[arrLoop[0]][arrLoop[1]] = ("A" if nIndx % 2 == 0 else "B") + +## print (arrOutput) +print (PlayerWin(arrOutput, len(arrMoves))) diff --git a/challenge-335/perlboy1967/perl/ch-1.pl b/challenge-335/perlboy1967/perl/ch-1.pl new file mode 100755 index 0000000000..84b2ae0fd4 --- /dev/null +++ b/challenge-335/perlboy1967/perl/ch-1.pl @@ -0,0 +1,41 @@ +#!/bin/perl + +=pod + +L + +Author: Niels 'PerlBoy' van Dijke + +Task 1: Common Characters +Submitted by: Mohammad Sajid Anwar + +You are given an array of words. + +Write a script to return all characters that is in every word in the given +array including duplicates. + +=cut + +use Test2::V0 qw(-no_srand); +use exact 'v5.32', -signatures; + +use List::Util qw(min); +use List::MoreUtils qw(frequency); + +sub commonCharacters (@words) { + my (%chars,@wFreq); + # Build list with word character frequency numbers + push(@wFreq,{ frequency map { $chars{$_} = 1; $_ } split // }) for (@words); + # Return common characters based on minimum found per character + return map { + my $char = $_; ($char) x min(map { $$_{$char} // 0 } @wFreq); + } sort keys %chars; +} + +is [commonCharacters(qw{bella label roller})],[qw{e l l}],'Example 1'; +is [commonCharacters(qw{cool lock cook})],[qw{c o}],'Example 2'; +is [commonCharacters(qw{hello world pole})],[qw{l o}],'Example 3'; +is [commonCharacters(qw{abc def ghi})],[],'Example 4'; +is [commonCharacters(qw{aab aac aaa})],[qw{a a}],'Example 5'; + +done_testing() diff --git a/challenge-335/perlboy1967/perl/ch-2.pl b/challenge-335/perlboy1967/perl/ch-2.pl new file mode 100755 index 0000000000..8717eca5c3 --- /dev/null +++ b/challenge-335/perlboy1967/perl/ch-2.pl @@ -0,0 +1,58 @@ +#!/bin/perl + +=pod + +L + +Author: Niels 'PerlBoy' van Dijke + +Task 2: Find Winner +Submitted by: Mohammad Sajid Anwar + +You are given an array of all moves by the two players. + +Write a script to find the winner of the TicTacToe game if found based on +the moves provided in the given array. + +UPDATE: Order move is in the order - A, B, A, B, A, ... + +=cut + +use Test2::V0 qw(-no_srand); +use exact 'v5.32', -signatures; + +sub findWinner (@moves) { + # Define winner regexp ($+{w} is the winner) + state $re = qr/ + ^(?AAA|BBB) | # Row 1 + ^... (?AAA|BBB) | # Row 2 + ^... ... (?AAA|BBB) | # Row 3 + ^(?[AB]).. \4.. \4 | # Column 1 + ^.(?[AB]). .\5. .\5 | # Column 2 + ^..(?[AB]) ..\6 ..\6 | # Column 3 + ^(?[AB]).. .\7. ..\7 | # Diagonal 1 + ^..(?[AB]) .\8. \8 # Diagonal 2 + /x; + + # Initialise the board + my $board = '_' x 9; + + # Initialise the turns + my @turns = qw(A B A B A B A B A); + + for (@moves) { + substr($board, $_->[0] * 3 + $_->[1], 1, shift @turns); + } + + return substr($+{w}, 0, 1) if ($board =~ $re); + return 'Pending' if (@moves < 9); + return 'Draw'; +} + +is findWinner([0,0],[2,0],[1,1],[2,1],[2,2]),'A','Example 1 (A wins)'; +is findWinner([0,0],[1,1],[0,1],[0,2],[1,0],[2,0]),'B','Example 2 (B wins)'; +is findWinner([0,0],[1,1],[2,0],[1,0],[1,2],[2,1],[0,1],[0,2],[2,2]),'Draw','Example 3 (Draw)'; +is findWinner([0,0],[1,1]),'Pending','Example 4 (Pending)'; +is findWinner([1,1],[0,0],[2,2],[0,1],[1,0],[0,2]),'B','Example 5 (B wins)'; + +done_testing; diff --git a/challenge-335/perlboy1967/perl/ch1.pl b/challenge-335/perlboy1967/perl/ch1.pl deleted file mode 100755 index 84b2ae0fd4..0000000000 --- a/challenge-335/perlboy1967/perl/ch1.pl +++ /dev/null @@ -1,41 +0,0 @@ -#!/bin/perl - -=pod - -L - -Author: Niels 'PerlBoy' van Dijke - -Task 1: Common Characters -Submitted by: Mohammad Sajid Anwar - -You are given an array of words. - -Write a script to return all characters that is in every word in the given -array including duplicates. - -=cut - -use Test2::V0 qw(-no_srand); -use exact 'v5.32', -signatures; - -use List::Util qw(min); -use List::MoreUtils qw(frequency); - -sub commonCharacters (@words) { - my (%chars,@wFreq); - # Build list with word character frequency numbers - push(@wFreq,{ frequency map { $chars{$_} = 1; $_ } split // }) for (@words); - # Return common characters based on minimum found per character - return map { - my $char = $_; ($char) x min(map { $$_{$char} // 0 } @wFreq); - } sort keys %chars; -} - -is [commonCharacters(qw{bella label roller})],[qw{e l l}],'Example 1'; -is [commonCharacters(qw{cool lock cook})],[qw{c o}],'Example 2'; -is [commonCharacters(qw{hello world pole})],[qw{l o}],'Example 3'; -is [commonCharacters(qw{abc def ghi})],[],'Example 4'; -is [commonCharacters(qw{aab aac aaa})],[qw{a a}],'Example 5'; - -done_testing() diff --git a/challenge-335/perlboy1967/perl/ch2.pl b/challenge-335/perlboy1967/perl/ch2.pl deleted file mode 100755 index 8717eca5c3..0000000000 --- a/challenge-335/perlboy1967/perl/ch2.pl +++ /dev/null @@ -1,58 +0,0 @@ -#!/bin/perl - -=pod - -L - -Author: Niels 'PerlBoy' van Dijke - -Task 2: Find Winner -Submitted by: Mohammad Sajid Anwar - -You are given an array of all moves by the two players. - -Write a script to find the winner of the TicTacToe game if found based on -the moves provided in the given array. - -UPDATE: Order move is in the order - A, B, A, B, A, ... - -=cut - -use Test2::V0 qw(-no_srand); -use exact 'v5.32', -signatures; - -sub findWinner (@moves) { - # Define winner regexp ($+{w} is the winner) - state $re = qr/ - ^(?AAA|BBB) | # Row 1 - ^... (?AAA|BBB) | # Row 2 - ^... ... (?AAA|BBB) | # Row 3 - ^(?[AB]).. \4.. \4 | # Column 1 - ^.(?[AB]). .\5. .\5 | # Column 2 - ^..(?[AB]) ..\6 ..\6 | # Column 3 - ^(?[AB]).. .\7. ..\7 | # Diagonal 1 - ^..(?[AB]) .\8. \8 # Diagonal 2 - /x; - - # Initialise the board - my $board = '_' x 9; - - # Initialise the turns - my @turns = qw(A B A B A B A B A); - - for (@moves) { - substr($board, $_->[0] * 3 + $_->[1], 1, shift @turns); - } - - return substr($+{w}, 0, 1) if ($board =~ $re); - return 'Pending' if (@moves < 9); - return 'Draw'; -} - -is findWinner([0,0],[2,0],[1,1],[2,1],[2,2]),'A','Example 1 (A wins)'; -is findWinner([0,0],[1,1],[0,1],[0,2],[1,0],[2,0]),'B','Example 2 (B wins)'; -is findWinner([0,0],[1,1],[2,0],[1,0],[1,2],[2,1],[0,1],[0,2],[2,2]),'Draw','Example 3 (Draw)'; -is findWinner([0,0],[1,1]),'Pending','Example 4 (Pending)'; -is findWinner([1,1],[0,0],[2,2],[0,1],[1,0],[0,2]),'B','Example 5 (B wins)'; - -done_testing; diff --git a/stats/pwc-challenge-332.json b/stats/pwc-challenge-332.json index 3903b86546..7a3585b0a8 100644 --- a/stats/pwc-challenge-332.json +++ b/stats/pwc-challenge-332.json @@ -240,6 +240,16 @@ "id" : "mauke", "name" : "mauke" }, + { + "data" : [ + [ + "Perl", + 2 + ] + ], + "id" : "Niels van Dijke", + "name" : "Niels van Dijke" + }, { "data" : [ [ @@ -542,6 +552,11 @@ "name" : "mauke", "y" : 2 }, + { + "drilldown" : "Niels van Dijke", + "name" : "Niels van Dijke", + "y" : 2 + }, { "drilldown" : "Packy Anderson", "name" : "Packy Anderson", @@ -617,7 +632,7 @@ } ], "subtitle" : { - "text" : "[Champions: 34] Last updated at 2025-08-10 23:39:12 GMT" + "text" : "[Champions: 35] Last updated at 2025-08-19 11:04:11 GMT" }, "title" : { "text" : "The Weekly Challenge - 332" diff --git a/stats/pwc-challenge-333.json b/stats/pwc-challenge-333.json index 09802125dd..d57e5bf286 100644 --- a/stats/pwc-challenge-333.json +++ b/stats/pwc-challenge-333.json @@ -264,6 +264,16 @@ "id" : "mauke", "name" : "mauke" }, + { + "data" : [ + [ + "Perl", + 2 + ] + ], + "id" : "Niels van Dijke", + "name" : "Niels van Dijke" + }, { "data" : [ [ @@ -562,6 +572,11 @@ "name" : "mauke", "y" : 2 }, + { + "drilldown" : "Niels van Dijke", + "name" : "Niels van Dijke", + "y" : 2 + }, { "drilldown" : "Packy Anderson", "name" : "Packy Anderson", @@ -632,7 +647,7 @@ } ], "subtitle" : { - "text" : "[Champions: 35] Last updated at 2025-08-12 12:31:10 GMT" + "text" : "[Champions: 36] Last updated at 2025-08-19 11:04:11 GMT" }, "title" : { "text" : "The Weekly Challenge - 333" diff --git a/stats/pwc-challenge-334.json b/stats/pwc-challenge-334.json new file mode 100644 index 0000000000..af43e5b614 --- /dev/null +++ b/stats/pwc-challenge-334.json @@ -0,0 +1,604 @@ +{ + "chart" : { + "type" : "column" + }, + "drilldown" : { + "series" : [ + { + "data" : [ + [ + "Perl", + 2 + ], + [ + "Blog", + 1 + ] + ], + "id" : "Ali Moradi", + "name" : "Ali Moradi" + }, + { + "data" : [ + [ + "Perl", + 2 + ] + ], + "id" : "Andreas Mahnke", + "name" : "Andreas Mahnke" + }, + { + "data" : [ + [ + "Raku", + 2 + ] + ], + "id" : "Andrew Shitov", + "name" : "Andrew Shitov" + }, + { + "data" : [ + [ + "Raku", + 2 + ], + [ + "Blog", + 1 + ] + ], + "id" : "Arne Sommer", + "name" : "Arne Sommer" + }, + { + "data" : [ + [ + "Perl", + 2 + ], + [ + "Raku", + 2 + ] + ], + "id" : "Athanasius", + "name" : "Athanasius" + }, + { + "data" : [ + [ + "Raku", + 1 + ] + ], + "id" : "BarrOff", + "name" : "BarrOff" + }, + { + "data" : [ + [ + "Perl", + 2 + ], + [ + "Blog", + 1 + ] + ], + "id" : "Bob Lied", + "name" : "Bob Lied" + }, + { + "data" : [ + [ + "Perl", + 2 + ] + ], + "id" : "David Ferrone", + "name" : "David Ferrone" + }, + { + "data" : [ + [ + "Perl", + 2 + ] + ], + "id" : "E. Choroba", + "name" : "E. Choroba" + }, + { + "data" : [ + [ + "Raku", + 2 + ] + ], + "id" : "Feng Chang", + "name" : "Feng Chang" + }, + { + "data" : [ + [ + "Raku", + 2 + ] + ], + "id" : "Humberto Massa", + "name" : "Humberto Massa" + }, + { + "data" : [ + [ + "Perl", + 2 + ], + [ + "Raku", + 2 + ], + [ + "Blog", + 1 + ] + ], + "id" : "Jaldhar H. Vyas", + "name" : "Jaldhar H. Vyas" + }, + { + "data" : [ + [ + "Raku", + 2 + ] + ], + "id" : "Jan Krnavek", + "name" : "Jan Krnavek" + }, + { + "data" : [ + [ + "Perl", + 2 + ], + [ + "Blog", + 1 + ] + ], + "id" : "Jorg Sommrey", + "name" : "Jorg Sommrey" + }, + { + "data" : [ + [ + "Perl", + 2 + ] + ], + "id" : "Kjetil Skotheim", + "name" : "Kjetil Skotheim" + }, + { + "data" : [ + [ + "Raku", + 2 + ] + ], + "id" : "Mark Anderson", + "name" : "Mark Anderson" + }, + { + "data" : [ + [ + "Perl", + 2 + ] + ], + "id" : "Matthew Neleigh", + "name" : "Matthew Neleigh" + }, + { + "data" : [ + [ + "Perl", + 2 + ], + [ + "Blog", + 1 + ] + ], + "id" : "Matthias Muth", + "name" : "Matthias Muth" + }, + { + "data" : [ + [ + "Perl", + 2 + ] + ], + "id" : "Niels van Dijke", + "name" : "Niels van Dijke" + }, + { + "data" : [ + [ + "Perl", + 2 + ], + [ + "Raku", + 2 + ], + [ + "Blog", + 1 + ] + ], + "id" : "Packy Anderson", + "name" : "Packy Anderson" + }, + { + "data" : [ + [ + "Perl", + 2 + ], + [ + "Blog", + 1 + ] + ], + "id" : "Peter Campbell Smith", + "name" : "Peter Campbell Smith" + }, + { + "data" : [ + [ + "Perl", + 2 + ] + ], + "id" : "Peter Meszaros", + "name" : "Peter Meszaros" + }, + { + "data" : [ + [ + "Perl", + 2 + ], + [ + "Blog", + 1 + ] + ], + "id" : "Robbie Hatley", + "name" : "Robbie Hatley" + }, + { + "data" : [ + [ + "Raku", + 2 + ] + ], + "id" : "Robert Ransbottom", + "name" : "Robert Ransbottom" + }, + { + "data" : [ + [ + "Perl", + 2 + ], + [ + "Raku", + 2 + ], + [ + "Blog", + 1 + ] + ], + "id" : "Roger Bell_West", + "name" : "Roger Bell_West" + }, + { + "data" : [ + [ + "Perl", + 2 + ], + [ + "Blog", + 1 + ] + ], + "id" : "Simon Green", + "name" : "Simon Green" + }, + { + "data" : [ + [ + "Raku", + 2 + ] + ], + "id" : "Simon Proctor", + "name" : "Simon Proctor" + }, + { + "data" : [ + [ + "Perl", + 2 + ], + [ + "Blog", + 2 + ] + ], + "id" : "Thomas Kohler", + "name" : "Thomas Kohler" + }, + { + "data" : [ + [ + "Perl", + 2 + ], + [ + "Raku", + 2 + ] + ], + "id" : "Ulrich Rieke", + "name" : "Ulrich Rieke" + }, + { + "data" : [ + [ + "Perl", + 2 + ], + [ + "Blog", + 1 + ] + ], + "id" : "W. Luis Mochan", + "name" : "W. Luis Mochan" + }, + { + "data" : [ + [ + "Perl", + 2 + ] + ], + "id" : "Wanderdoc", + "name" : "Wanderdoc" + }, + { + "data" : [ + [ + "Perl", + 2 + ], + [ + "Blog", + 1 + ] + ], + "id" : "Yitzchak Scott-Thoennes", + "name" : "Yitzchak Scott-Thoennes" + } + ] + }, + "legend" : { + "enabled" : 0 + }, + "plotOptions" : { + "series" : { + "borderWidth" : 0, + "dataLabels" : { + "enabled" : 1, + "format" : "{point.y}" + } + } + }, + "series" : [ + { + "colorByPoint" : 1, + "data" : [ + { + "drilldown" : "Ali Moradi", + "name" : "Ali Moradi", + "y" : 3 + }, + { + "drilldown" : "Andreas Mahnke", + "name" : "Andreas Mahnke", + "y" : 2 + }, + { + "drilldown" : "Andrew Shitov", + "name" : "Andrew Shitov", + "y" : 2 + }, + { + "drilldown" : "Arne Sommer", + "name" : "Arne Sommer", + "y" : 3 + }, + { + "drilldown" : "Athanasius", + "name" : "Athanasius", + "y" : 4 + }, + { + "drilldown" : "BarrOff", + "name" : "BarrOff", + "y" : 1 + }, + { + "drilldown" : "Bob Lied", + "name" : "Bob Lied", + "y" : 3 + }, + { + "drilldown" : "David Ferrone", + "name" : "David Ferrone", + "y" : 2 + }, + { + "drilldown" : "E. Choroba", + "name" : "E. Choroba", + "y" : 2 + }, + { + "drilldown" : "Feng Chang", + "name" : "Feng Chang", + "y" : 2 + }, + { + "drilldown" : "Humberto Massa", + "name" : "Humberto Massa", + "y" : 2 + }, + { + "drilldown" : "Jaldhar H. Vyas", + "name" : "Jaldhar H. Vyas", + "y" : 5 + }, + { + "drilldown" : "Jan Krnavek", + "name" : "Jan Krnavek", + "y" : 2 + }, + { + "drilldown" : "Jorg Sommrey", + "name" : "Jorg Sommrey", + "y" : 3 + }, + { + "drilldown" : "Kjetil Skotheim", + "name" : "Kjetil Skotheim", + "y" : 2 + }, + { + "drilldown" : "Mark Anderson", + "name" : "Mark Anderson", + "y" : 2 + }, + { + "drilldown" : "Matthew Neleigh", + "name" : "Matthew Neleigh", + "y" : 2 + }, + { + "drilldown" : "Matthias Muth", + "name" : "Matthias Muth", + "y" : 3 + }, + { + "drilldown" : "Niels van Dijke", + "name" : "Niels van Dijke", + "y" : 2 + }, + { + "drilldown" : "Packy Anderson", + "name" : "Packy Anderson", + "y" : 5 + }, + { + "drilldown" : "Peter Campbell Smith", + "name" : "Peter Campbell Smith", + "y" : 3 + }, + { + "drilldown" : "Peter Meszaros", + "name" : "Peter Meszaros", + "y" : 2 + }, + { + "drilldown" : "Robbie Hatley", + "name" : "Robbie Hatley", + "y" : 3 + }, + { + "drilldown" : "Robert Ransbottom", + "name" : "Robert Ransbottom", + "y" : 2 + }, + { + "drilldown" : "Roger Bell_West", + "name" : "Roger Bell_West", + "y" : 5 + }, + { + "drilldown" : "Simon Green", + "name" : "Simon Green", + "y" : 3 + }, + { + "drilldown" : "Simon Proctor", + "name" : "Simon Proctor", + "y" : 2 + }, + { + "drilldown" : "Thomas Kohler", + "name" : "Thomas Kohler", + "y" : 4 + }, + { + "drilldown" : "Ulrich Rieke", + "name" : "Ulrich Rieke", + "y" : 4 + }, + { + "drilldown" : "W. Luis Mochan", + "name" : "W. Luis Mochan", + "y" : 3 + }, + { + "drilldown" : "Wanderdoc", + "name" : "Wanderdoc", + "y" : 2 + }, + { + "drilldown" : "Yitzchak Scott-Thoennes", + "name" : "Yitzchak Scott-Thoennes", + "y" : 3 + } + ], + "name" : "The Weekly Challenge - 334" + } + ], + "subtitle" : { + "text" : "[Champions: 32] Last updated at 2025-08-19 11:04:11 GMT" + }, + "title" : { + "text" : "The Weekly Challenge - 334" + }, + "tooltip" : { + "followPointer" : 1, + "headerFormat" : "{series.name}
", + "pointFormat" : "{point.name}: {point.y:f}
" + }, + "xAxis" : { + "type" : "category" + }, + "yAxis" : { + "title" : { + "text" : "Total Solutions" + } + } +} diff --git a/stats/pwc-current.json b/stats/pwc-current.json index c7ea51ac16..d06c6cb800 100644 --- a/stats/pwc-current.json +++ b/stats/pwc-current.json @@ -32,74 +32,12 @@ "data" : [ [ "Raku", - 2 + 1 ] ], "id" : "Andrew Shitov", "name" : "Andrew Shitov" }, - { - "data" : [ - [ - "Raku", - 2 - ], - [ - "Blog", - 1 - ] - ], - "id" : "Arne Sommer", - "name" : "Arne Sommer" - }, - { - "data" : [ - [ - "Perl", - 2 - ], - [ - "Raku", - 2 - ] - ], - "id" : "Athanasius", - "name" : "Athanasius" - }, - { - "data" : [ - [ - "Raku", - 1 - ] - ], - "id" : "BarrOff", - "name" : "BarrOff" - }, - { - "data" : [ - [ - "Perl", - 2 - ], - [ - "Blog", - 1 - ] - ], - "id" : "Bob Lied", - "name" : "Bob Lied" - }, - { - "data" : [ - [ - "Perl", - 2 - ] - ], - "id" : "David Ferrone", - "name" : "David Ferrone" - }, { "data" : [ [ @@ -120,58 +58,6 @@ "id" : "Feng Chang", "name" : "Feng Chang" }, - { - "data" : [ - [ - "Raku", - 2 - ] - ], - "id" : "Humberto Massa", - "name" : "Humberto Massa" - }, - { - "data" : [ - [ - "Perl", - 2 - ], - [ - "Raku", - 2 - ], - [ - "Blog", - 1 - ] - ], - "id" : "Jaldhar H. Vyas", - "name" : "Jaldhar H. Vyas" - }, - { - "data" : [ - [ - "Perl", - 2 - ], - [ - "Blog", - 1 - ] - ], - "id" : "Jorg Sommrey", - "name" : "Jorg Sommrey" - }, - { - "data" : [ - [ - "Perl", - 2 - ] - ], - "id" : "Kjetil Skotheim", - "name" : "Kjetil Skotheim" - }, { "data" : [ [ @@ -189,120 +75,8 @@ 2 ] ], - "id" : "Matthew Neleigh", - "name" : "Matthew Neleigh" - }, - { - "data" : [ - [ - "Perl", - 2 - ], - [ - "Blog", - 1 - ] - ], - "id" : "Matthias Muth", - "name" : "Matthias Muth" - }, - { - "data" : [ - [ - "Perl", - 2 - ], - [ - "Raku", - 2 - ], - [ - "Blog", - 1 - ] - ], - "id" : "Packy Anderson", - "name" : "Packy Anderson" - }, - { - "data" : [ - [ - "Perl", - 2 - ], - [ - "Blog", - 1 - ] - ], - "id" : "Peter Campbell Smith", - "name" : "Peter Campbell Smith" - }, - { - "data" : [ - [ - "Perl", - 2 - ] - ], - "id" : "Peter Meszaros", - "name" : "Peter Meszaros" - }, - { - "data" : [ - [ - "Perl", - 2 - ], - [ - "Blog", - 1 - ] - ], - "id" : "Robbie Hatley", - "name" : "Robbie Hatley" - }, - { - "data" : [ - [ - "Raku", - 2 - ] - ], - "id" : "Robert Ransbottom", - "name" : "Robert Ransbottom" - }, - { - "data" : [ - [ - "Perl", - 2 - ], - [ - "Raku", - 2 - ], - [ - "Blog", - 1 - ] - ], - "id" : "Roger Bell_West", - "name" : "Roger Bell_West" - }, - { - "data" : [ - [ - "Perl", - 2 - ], - [ - "Blog", - 1 - ] - ], - "id" : "Simon Green", - "name" : "Simon Green" + "id" : "Niels van Dijke", + "name" : "Niels van Dijke" }, { "data" : [ @@ -328,20 +102,6 @@ "id" : "Thomas Kohler", "name" : "Thomas Kohler" }, - { - "data" : [ - [ - "Perl", - 2 - ], - [ - "Raku", - 2 - ] - ], - "id" : "Ulrich Rieke", - "name" : "Ulrich Rieke" - }, { "data" : [ [ @@ -365,20 +125,6 @@ ], "id" : "Wanderdoc", "name" : "Wanderdoc" - }, - { - "data" : [ - [ - "Perl", - 2 - ], - [ - "Blog", - 1 - ] - ], - "id" : "Yitzchak Scott-Thoennes", - "name" : "Yitzchak Scott-Thoennes" } ] }, @@ -411,33 +157,8 @@ { "drilldown" : "Andrew Shitov", "name" : "Andrew Shitov", - "y" : 2 - }, - { - "drilldown" : "Arne Sommer", - "name" : "Arne Sommer", - "y" : 3 - }, - { - "drilldown" : "Athanasius", - "name" : "Athanasius", - "y" : 4 - }, - { - "drilldown" : "BarrOff", - "name" : "BarrOff", "y" : 1 }, - { - "drilldown" : "Bob Lied", - "name" : "Bob Lied", - "y" : 3 - }, - { - "drilldown" : "David Ferrone", - "name" : "David Ferrone", - "y" : 2 - }, { "drilldown" : "E. Choroba", "name" : "E. Choroba", @@ -448,76 +169,16 @@ "name" : "Feng Chang", "y" : 2 }, - { - "drilldown" : "Humberto Massa", - "name" : "Humberto Massa", - "y" : 2 - }, - { - "drilldown" : "Jaldhar H. Vyas", - "name" : "Jaldhar H. Vyas", - "y" : 5 - }, - { - "drilldown" : "Jorg Sommrey", - "name" : "Jorg Sommrey", - "y" : 3 - }, - { - "drilldown" : "Kjetil Skotheim", - "name" : "Kjetil Skotheim", - "y" : 2 - }, { "drilldown" : "Mark Anderson", "name" : "Mark Anderson", "y" : 2 }, { - "drilldown" : "Matthew Neleigh", - "name" : "Matthew Neleigh", - "y" : 2 - }, - { - "drilldown" : "Matthias Muth", - "name" : "Matthias Muth", - "y" : 3 - }, - { - "drilldown" : "Packy Anderson", - "name" : "Packy Anderson", - "y" : 5 - }, - { - "drilldown" : "Peter Campbell Smith", - "name" : "Peter Campbell Smith", - "y" : 3 - }, - { - "drilldown" : "Peter Meszaros", - "name" : "Peter Meszaros", - "y" : 2 - }, - { - "drilldown" : "Robbie Hatley", - "name" : "Robbie Hatley", - "y" : 3 - }, - { - "drilldown" : "Robert Ransbottom", - "name" : "Robert Ransbottom", + "drilldown" : "Niels van Dijke", + "name" : "Niels van Dijke", "y" : 2 }, - { - "drilldown" : "Roger Bell_West", - "name" : "Roger Bell_West", - "y" : 5 - }, - { - "drilldown" : "Simon Green", - "name" : "Simon Green", - "y" : 3 - }, { "drilldown" : "Simon Proctor", "name" : "Simon Proctor", @@ -528,11 +189,6 @@ "name" : "Thomas Kohler", "y" : 4 }, - { - "drilldown" : "Ulrich Rieke", - "name" : "Ulrich Rieke", - "y" : 4 - }, { "drilldown" : "W. Luis Mochan", "name" : "W. Luis Mochan", @@ -542,21 +198,16 @@ "drilldown" : "Wanderdoc", "name" : "Wanderdoc", "y" : 2 - }, - { - "drilldown" : "Yitzchak Scott-Thoennes", - "name" : "Yitzchak Scott-Thoennes", - "y" : 3 } ], - "name" : "The Weekly Challenge - 334" + "name" : "The Weekly Challenge - 335" } ], "subtitle" : { - "text" : "[Champions: 30] Last updated at 2025-08-18 00:27:53 GMT" + "text" : "[Champions: 11] Last updated at 2025-08-19 11:04:20 GMT" }, "title" : { - "text" : "The Weekly Challenge - 334" + "text" : "The Weekly Challenge - 335" }, "tooltip" : { "followPointer" : 1, diff --git a/stats/pwc-language-breakdown-2019.json b/stats/pwc-language-breakdown-2019.json index 15b3216367..f39b2dd373 100644 --- a/stats/pwc-language-breakdown-2019.json +++ b/stats/pwc-language-breakdown-2019.json @@ -970,7 +970,7 @@ } ], "subtitle" : { - "text" : "Click the columns to drilldown the language breakdown. Last updated at 2025-08-18 00:27:53 GMT" + "text" : "Click the columns to drilldown the language breakdown. Last updated at 2025-08-19 11:04:20 GMT" }, "title" : { "text" : "The Weekly Challenge Language" diff --git a/stats/pwc-language-breakdown-2020.json b/stats/pwc-language-breakdown-2020.json index d3d22221c7..7d57b9631c 100644 --- a/stats/pwc-language-breakdown-2020.json +++ b/stats/pwc-language-breakdown-2020.json @@ -1223,7 +1223,7 @@ } ], "subtitle" : { - "text" : "Click the columns to drilldown the language breakdown. Last updated at 2025-08-18 00:27:53 GMT" + "text" : "Click the columns to drilldown the language breakdown. Last updated at 2025-08-19 11:04:20 GMT" }, "title" : { "text" : "The Weekly Challenge Language" diff --git a/stats/pwc-language-breakdown-2021.json b/stats/pwc-language-breakdown-2021.json index dec0375b5c..01fe569772 100644 --- a/stats/pwc-language-breakdown-2021.json +++ b/stats/pwc-language-breakdown-2021.json @@ -1223,7 +1223,7 @@ } ], "subtitle" : { - "text" : "Click the columns to drilldown the language breakdown. Last updated at 2025-08-18 00:27:53 GMT" + "text" : "Click the columns to drilldown the language breakdown. Last updated at 2025-08-19 11:04:20 GMT" }, "title" : { "text" : "The Weekly Challenge Language" diff --git a/stats/pwc-language-breakdown-2022.json b/stats/pwc-language-breakdown-2022.json index d82dce81bc..4e76816075 100644 --- a/stats/pwc-language-breakdown-2022.json +++ b/stats/pwc-language-breakdown-2022.json @@ -1223,7 +1223,7 @@ } ], "subtitle" : { - "text" : "Click the columns to drilldown the language breakdown. Last updated at 2025-08-18 00:27:53 GMT" + "text" : "Click the columns to drilldown the language breakdown. Last updated at 2025-08-19 11:04:20 GMT" }, "title" : { "text" : "The Weekly Challenge Language" diff --git a/stats/pwc-language-breakdown-2023.json b/stats/pwc-language-breakdown-2023.json index b5be6cbf7b..cca6e89dc4 100644 --- a/stats/pwc-language-breakdown-2023.json +++ b/stats/pwc-language-breakdown-2023.json @@ -1200,7 +1200,7 @@ } ], "subtitle" : { - "text" : "Click the columns to drilldown the language breakdown. Last updated at 2025-08-18 00:27:53 GMT" + "text" : "Click the columns to drilldown the language breakdown. Last updated at 2025-08-19 11:04:20 GMT" }, "title" : { "text" : "The Weekly Challenge Language" diff --git a/stats/pwc-language-breakdown-2024.json b/stats/pwc-language-breakdown-2024.json index 1acc893f84..cdebba331e 100644 --- a/stats/pwc-language-breakdown-2024.json +++ b/stats/pwc-language-breakdown-2024.json @@ -1246,7 +1246,7 @@ } ], "subtitle" : { - "text" : "Click the columns to drilldown the language breakdown. Last updated at 2025-08-18 00:27:53 GMT" + "text" : "Click the columns to drilldown the language breakdown. Last updated at 2025-08-19 11:04:20 GMT" }, "title" : { "text" : "The Weekly Challenge Language" diff --git a/stats/pwc-language-breakdown-2025.json b/stats/pwc-language-breakdown-2025.json index e3b01ac0d1..dc46a09975 100644 --- a/stats/pwc-language-breakdown-2025.json +++ b/stats/pwc-language-breakdown-2025.json @@ -8,11 +8,29 @@ "data" : [ [ "Perl", - 44 + 14 ], [ "Raku", - 25 + 7 + ], + [ + "Blog", + 4 + ] + ], + "id" : "335", + "name" : "335" + }, + { + "data" : [ + [ + "Perl", + 46 + ], + [ + "Raku", + 27 ], [ "Blog", @@ -26,7 +44,7 @@ "data" : [ [ "Perl", - 50 + 52 ], [ "Raku", @@ -44,7 +62,7 @@ "data" : [ [ "Perl", - 48 + 50 ], [ "Raku", @@ -598,20 +616,25 @@ { "colorByPoint" : "true", "data" : [ + { + "drilldown" : "335", + "name" : "335", + "y" : 25 + }, { "drilldown" : "334", "name" : "334", - "y" : 84 + "y" : 88 }, { "drilldown" : "333", "name" : "333", - "y" : 102 + "y" : 104 }, { "drilldown" : "332", "name" : "332", - "y" : 103 + "y" : 105 }, { "drilldown" : "331", @@ -763,7 +786,7 @@ } ], "subtitle" : { - "text" : "Click the columns to drilldown the language breakdown. Last updated at 2025-08-18 00:27:53 GMT" + "text" : "Click the columns to drilldown the language breakdown. Last updated at 2025-08-19 11:04:20 GMT" }, "title" : { "text" : "The Weekly Challenge Language" diff --git a/stats/pwc-language-breakdown-summary.json b/stats/pwc-language-breakdown-summary.json index b294a20a30..d6a23665b7 100644 --- a/stats/pwc-language-breakdown-summary.json +++ b/stats/pwc-language-breakdown-summary.json @@ -10,15 +10,15 @@ "data" : [ [ "Perl", - 17248 + 17268 ], [ "Raku", - 9604 + 9613 ], [ "Blog", - 6204 + 6208 ] ], "dataLabels" : { @@ -37,7 +37,7 @@ } ], "subtitle" : { - "text" : "Last updated at 2025-08-18 00:27:53 GMT" + "text" : "Last updated at 2025-08-19 11:04:20 GMT" }, "title" : { "text" : "The Weekly Challenge Contributions [2019 - 2025]" diff --git a/stats/pwc-leaders.json b/stats/pwc-leaders.json index 55b162822e..a782d33b71 100644 --- a/stats/pwc-leaders.json +++ b/stats/pwc-leaders.json @@ -176,7 +176,7 @@ "data" : [ [ "Perl", - 486 + 488 ], [ "Raku", @@ -184,7 +184,7 @@ ], [ "Blog", - 243 + 244 ] ], "id" : "W. Luis Mochan", @@ -212,7 +212,7 @@ "data" : [ [ "Perl", - 657 + 659 ], [ "Blog", @@ -304,7 +304,7 @@ ], [ "Raku", - 531 + 533 ], [ "Blog", @@ -318,11 +318,11 @@ "data" : [ [ "Perl", - 270 + 272 ], [ "Blog", - 263 + 265 ] ], "id" : "Thomas Kohler", @@ -336,7 +336,7 @@ ], [ "Raku", - 459 + 461 ] ], "id" : "Feng Chang", @@ -346,7 +346,7 @@ "data" : [ [ "Raku", - 460 + 462 ] ], "id" : "Jan Krnavek", @@ -356,7 +356,7 @@ "data" : [ [ "Perl", - 249 + 251 ], [ "Raku", @@ -364,7 +364,7