DEV Community

Simon Green
Simon Green

Posted on

Weekly Challenge 122

Challenge, My solutions

TASK #1 › Average of Stream

Task

You are given a stream of numbers @N.

Write a script to print the average of the stream at every point.

My solution

This is relatively straight forward, and the work is done with this bit of code map { ++$cnt; $sum += $_; $sum / $cnt } @N. Basically, I add 1 to the counter and the value to the sum, and calculate the average (sum ÷ counter) at the point.

One thing that isn't explained is what happens when the average is not a whole number. Since there is no guidance on what to do, I will print out what Perl does. So one third shows as 0.333333333333333

Example

$ ./ch-1.pl 10 20 30 40 50 60 70 80 90
10 15 20 25 30 35 40 45 50
Enter fullscreen mode Exit fullscreen mode

TASK #2 › Basketball Points

Task

You are given a score $S.

You can win basketball points e.g. 1 point, 2 points and 3 points.

Write a script to find out the different ways you can score $S.

My solution

When I saw this task, I immediately thought of the Climb Stairs task from Challenge 112. I used a similar methodology to solve this one.

The main work is done in the recursive function _score (was called _climb in the previous challenge). If there are three or fewer points remaining, I show the scoring shots to make the required points. If there is more than 1 point remaining, I call the _score subroutine again for 1, 2 and 3 points if at least 1 more than that shot's point remain.

Examples

$ ./ch-2.pl 4
1 3
1 1 2
1 1 1 1
1 2 1
2 2
2 1 1
3 1

$ ./ch-2.pl 5
1 1 3
1 1 1 2
1 1 1 1 1
1 1 2 1
1 2 2
1 2 1 1
1 3 1
2 3
2 1 2
2 1 1 1
2 2 1
3 2
3 1 1
Enter fullscreen mode Exit fullscreen mode

Hot sauce if you're wrong - web dev trivia for staff engineers

Hot sauce if you're wrong · web dev trivia for staff engineers (Chris vs Jeremy, Leet Heat S1.E4)

  • Shipping Fast: Test your knowledge of deployment strategies and techniques
  • Authentication: Prove you know your OAuth from your JWT
  • CSS: Demonstrate your styling expertise under pressure
  • Acronyms: Decode the alphabet soup of web development
  • Accessibility: Show your commitment to building for everyone

Contestants must answer rapid-fire questions across the full stack of modern web development. Get it right, earn points. Get it wrong? The spice level goes up!

Watch Video 🌶️🔥

Top comments (0)

A Workflow Copilot. Tailored to You.

Pieces.app image

Our desktop app, with its intelligent copilot, streamlines coding by generating snippets, extracting code from screenshots, and accelerating problem-solving.

Read the docs

👋 Kindness is contagious

If this article connected with you, consider tapping ❤️ or leaving a brief comment to share your thoughts!

Okay