How to resolve the algorithm Water collected between towers step by step in the jq programming language

Published on 12 May 2024 09:40 PM
#Jq

How to resolve the algorithm Water collected between towers step by step in the jq programming language

Table of Contents

Problem Statement

In a two-dimensional world, we begin with any bar-chart (or row of close-packed 'towers', each of unit width), and then it rains, completely filling all convex enclosures in the chart with water.

In the example above, a bar chart representing the values [5, 3, 7, 2, 6, 4, 5, 9, 1, 2] has filled, collecting 14 units of water. Write a function, in your language, from a given array of heights, to the number of water units that can be held in this way, by a corresponding bar chart. Calculate the number of water units that could be collected by bar charts representing each of the following seven series:

See, also:

Let's start with the solution:

Step by Step solution about How to resolve the algorithm Water collected between towers step by step in the jq programming language

Source code in the jq programming language

def waterCollected:
  . as $tower
  | ($tower|length) as $n
  | ([0] + [range(1;$n) | ($tower[0:.]  | max) ]) as $highLeft
  | (      [range(1;$n) | ($tower[.:$n] | max) ] + [0]) as $highRight
  | [ range(0;$n) | [ ([$highLeft[.], $highRight[.] ]| min) - $tower[.], 0 ] | max]
  | add ;
 
def towers: [
    [1, 5, 3, 7, 2],
    [5, 3, 7, 2, 6, 4, 5, 9, 1, 2],
    [2, 6, 3, 5, 2, 8, 1, 4, 2, 2, 5, 3, 5, 7, 4, 1],
    [5, 5, 5, 5],
    [5, 6, 7, 8],
    [8, 7, 7, 6],
    [6, 7, 10, 7, 6]
];

towers[]
| "\(waterCollected) from \(.)"

  

You may also check:How to resolve the algorithm Barnsley fern step by step in the FreeBASIC programming language
You may also check:How to resolve the algorithm Long primes step by step in the Nim programming language
You may also check:How to resolve the algorithm Permutations step by step in the PicoLisp programming language
You may also check:How to resolve the algorithm String length step by step in the Dc programming language
You may also check:How to resolve the algorithm Character codes step by step in the Euphoria programming language