How to resolve the algorithm Water collected between towers step by step in the Arturo programming language
Published on 12 May 2024 09:40 PM
How to resolve the algorithm Water collected between towers step by step in the Arturo 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 Arturo programming language
Source code in the arturo programming language
cmax: function => [
m: neg ∞
map & 'x -> m:<=max @[m x]
]
vmin: $ => [map couple & & => min]
vsub: $ => [map couple & & 'p -> p\0 - p\1]
water: function [a][
sum vsub vmin reverse cmax reverse a cmax a a
]
loop [
[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]
] 'a -> print [a "->" water a]
You may also check:How to resolve the algorithm Operator precedence step by step in the ALGOL 60 programming language
You may also check:How to resolve the algorithm Top rank per group step by step in the E programming language
You may also check:How to resolve the algorithm Abbreviations, simple step by step in the Ruby programming language
You may also check:How to resolve the algorithm Tree from nesting levels step by step in the Haskell programming language
You may also check:How to resolve the algorithm Yellowstone sequence step by step in the Mathematica / Wolfram Language programming language