Unfortunately, considering only horizontal and vertical lines doesn’t give you the full picture; you need to also consider diagonal lines.
Because of the limits of the hydrothermal vent mapping system, the lines in your list will only ever be horizontal, vertical, or a diagonal line at exactly 45 degrees. In other words:
1,1 -> 3,3
covers points 1,1
, 2,2
, and 3,3
.9,7 -> 7,9
covers points 9,7
, 8,8
, and 7,9
.Considering all lines from the above example would now produce the following diagram:
1.1....11.
.111...2..
..2.1.111.
...1.2.2..
.112313211
...1.2....
..1...1...
.1.....1..
1.......1.
222111....
You still need to determine the number of points where at least two lines overlap. In the above example, this is still anywhere in the diagram with a 2
or larger - now a total of 12
points.
Consider all of the lines. At how many points do at least two lines overlap? Determine this in the following way:
overlap
that takes the pathname (string
) of a text file containing a list of nearby lines of vents. The function must return at how many points (number
) at least two point overlap, taking all lines into consideration.In this interactive session we assume the text files lines01.txt
1 and lines02.txt
2 to be located in the current directory.
> overlap("lines01.txt")
12
> overlap("lines02.txt")
20898
Jari Komppa (@Sol_HSA3) animated his solution.