TABLE OF CONTENTS
01. HEADLINES
02. SPONSOR
03. RECAP
04. PERL REVIEW
05. RAKU REVIEW
06. CHART
07. NEW MEMBERS
08. GUESTS
09. TASK #1: Special Positions
10. TASK #2: Equalize Array
HEADLINES
Welcome to the Week #270
of The Weekly Challenge
.
Thank you, Andrew Shitov
, for yet another Raku
review for Week #268.
Did you notice, in recent time, we are exploring guest languages more than the primary languages Perl
and Raku
?
It was a close contest last week. We had 78
guest contributions as compare to 74
regular contributions, if we take blogs out of the race.
Let us all celebrate the top Guest Contributors
as listed below:
1) Ali Moradi: Go, Java, Modula 3, Ruby, Standard ML
2) Asher Harvey-Smith: APL, BQN, Haskell, Hy, J, Nu
3) David Ferrone: C, JavaScript, Python, Rust
4) Eric Cheung: Python
5) Lubos Kolouch: Python
6) Luca Ferrari: Java, PostgreSQL, Python
7) Nelo Tovar: Bash
8) Packy Anderson: Elixir, Python
9) PokGoPun: Go, Python
10) Roger Bell_West: Crystal, JavaScript, Kotlin, Lua, PostScript, Python, Ruby, Rust, Scala
11) Simon Green: Python
12) Steven Wilson: Python
13) Ulrich Rieke: C++, Haskell, Rust
I have reached out to the recent champions with regard to the prize money. I sent email to Nelo Tovar
, Mustafa Aydin
, Asher Harvey-Smith
and Reinier Maliepaard
on 14th May 2024
. So far I received reply back from Reinier Maliepaard
only. Thank you Reinier
for getting back to me and successfully transferred the prize money. I would like to mention, PayPal
is also an option for payment if you prefer. I would request please check out Spam
in case it went straight there. Looking forward to your reply. Just in case, you can even reach out to me on perlweeklychallenge@yahoo.com
.
Last 5 weeks
mainstream contribution stats. Thank you Team PWC
for your support and encouragements.
Week |
Perl |
Raku |
Blog |
265 |
54 | 32 | 26 |
266 |
55 | 29 | 24 |
267 |
50 | 27 | 24 |
268 |
48 | 31 | 26 |
269 |
44 | 30 | 24 |
Last 5 weeks
guest contribution stats. Thank you each and every guest contributors for your time and efforts.
Week |
Guests |
Contributions |
Languages |
265 |
12 | 52 | 16 |
266 |
12 | 53 | 16 |
267 |
14 | 58 | 20 |
268 |
15 | 75 | 26 |
269 |
13 | 78 | 24 |
TOP 10 Guest Languages
Do you see your favourite language in the Top #10
? If not then why not contribute regularly and make it to the top.
1. Python (2514)
2. Ruby (684)
3. Haskell (668)
4. Rust (634)
5. Lua (602)
6. C (538)
7. C++ (508)
8. JavaScript (414)
9. Go (363)
10. BQN (336)
Blogs with Creative Title
1. Distribute Or… by Arne Sommer.
2. Two of Us Distributing Elements by Bob Lied.
3. Bits and Bins by Jorg Sommrey.
4. at the last time I did! by Luca Ferrari.
5. Bitwise Distribution by Packy Anderson.
6. Bits distribution by Peter Campbell Smith.
7. The Bitwise Elements by Roger Bell_West.
8. Elements or something by Simon Green.
GitHub Repository Stats
1. Commits: 38,133 (+82
)
2. Pull Requests: 10,102 (+33
)
3. Contributors: 244
4. Fork: 309 (+1
)
5. Stars: 172
SPONSOR
With start of Week #268
, we have a new sponsor Lance Wicks
for the entire year 2024
. Having said we are looking for more sponsors so that we can go back to weekly winner. If anyone interested please get in touch with us at perlweeklychallenge@yahoo.com
. Thanks for your support in advance.
RECAP
Quick recap of The Weekly Challenge - 269 by Mohammad Sajid Anwar
.
PERL REVIEW
If you missed any past reviews then please check out the collection.
RAKU REVIEW
Please checkout Raku solutions review of The Weekly Challenge - 268 by Andrew Shitov
.
If you missed any past reviews then please check out the collection.
CHART
Please take a look at the charts showing interesting data.
I would like to THANK
every member of the team for their valuable suggestions. Please do share your experience with us.
NEW MEMBERS
Please find out How to contribute?, if you have any doubts.
Please try the excellent tool EZPWC created by respected member Saif Ahmed
of Team PWC.
GUESTS
Please check out the guest contributions for the Week #269.
Please find past solutions by respected guests. Please share your creative solutions in other languages.
Task 1: Special Positions
Submitted by: Mohammad Sajid Anwar
You are given a m x n
binary matrix.
Write a script to return the number of special positions in the given binary matrix.
A position (i, j) is called special if $matrix[i][j] == 1 and all other elements in the row i and column j are 0.
Example 1
Input: $matrix = [ [1, 0, 0],
[0, 0, 1],
[1, 0, 0],
]
Output: 1
There is only one special position (1, 2) as $matrix[1][2] == 1
and all other elements in row 1 and column 2 are 0.
Example 2
Input: $matrix = [ [1, 0, 0],
[0, 1, 0],
[0, 0, 1],
]
Output: 3
Special positions are (0,0), (1, 1) and (2,2).
Task 2: Equalize Array
Submitted by: Mohammad Sajid Anwar
You are give an array of integers, @ints
and two integers, $x
and $y
.
Write a script to execute one of the two options:
Level 1:
Pick an index i of the given array and do $ints[i] += 1
Level 2:
Pick two different indices i,j and do $ints[i] +=1 and $ints[j] += 1.
You are allowed to perform as many levels as you want to make every elements in the given array equal. There is cost attach for each level, for Level 1, the cost is $x
and $y
for Level 2.
In the end return the minimum cost to get the work done.
Example 1
Input: @ints = (4, 1), $x = 3 and $y = 2
Output: 9
Level 1: i=1, so $ints[1] += 1.
@ints = (4, 2)
Level 1: i=1, so $ints[1] += 1.
@ints = (4, 3)
Level 1: i=1, so $ints[1] += 1.
@ints = (4, 4)
We perforned operation Level 1, 3 times.
So the total cost would be 3 x $x => 3 x 3 => 9
Example 2
Input: @ints = (2, 3, 3, 3, 5), $x = 2 and $y = 1
Output: 6
Level 2: i=0, j=1, so $ints[0] += 1 and $ints[1] += 1
@ints = (3, 4, 3, 3, 5)
Level 2: i=0, j=2, so $ints[0] += 1 and $ints[2] += 1
@ints = (4, 4, 4, 3, 5)
Level 2: i=0, j=3, so $ints[0] += 1 and $ints[3] += 1
@ints = (5, 4, 4, 4, 5)
Level 2: i=1, j=2, so $ints[1] += 1 and $ints[2] += 1
@ints = (5, 5, 5, 4, 5)
Level 1: i=3, so $ints[3] += 1
@ints = (5, 5, 5, 5, 5)
We perforned operation Level 1, 1 time and Level 2, 4 times.
So the total cost would be (1 x $x) + (4 x $y) => (1 x 2) + (4 x 1) => 6
Last date to submit the solution 23:59 (UK Time) Sunday 26th May 2024.