How to resolve the algorithm Water collected between towers step by step in the J programming language
Published on 12 May 2024 09:40 PM
How to resolve the algorithm Water collected between towers step by step in the J 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 J programming language
Source code in the j programming language
collectLevels =: >./\ <. >./\. NB. collect levels after filling
waterLevels=: collectLevels - ] NB. water levels for each tower
collectedWater=: +/@waterLevels NB. sum the units of water collected
printTowers =: ' ' , [: |.@|: '#~' #~ ] ,. waterLevels NB. print a nice graph of towers and water
collectedWater 5 3 7 2 6 4 5 9 1 2
14
printTowers 5 3 7 2 6 4 5 9 1 2
#
#
#~~~~#
#~#~~#
#~#~#~##
#~#~####
###~####
########~#
##########
NB. Test cases
TestTowers =: <@".;._2 noun define
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
)
TestResults =: 2 14 35 0 0 0 0
TestResults -: collectedWater &> TestTowers NB. check tests
1
You may also check:How to resolve the algorithm Holidays related to Easter step by step in the COBOL programming language
You may also check:How to resolve the algorithm Return multiple values step by step in the Harbour programming language
You may also check:How to resolve the algorithm Arithmetic/Integer step by step in the BQN programming language
You may also check:How to resolve the algorithm Regular expressions step by step in the Arturo programming language
You may also check:How to resolve the algorithm Ternary logic step by step in the BASIC256 programming language