Guest User

Untitled

a guest
Dec 14th, 2018
91
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.88 KB | None | 0 0
  1. const data = [
  2. [151, 671, 11, 15],
  3. [887, 913, 28, 22],
  4. ] // etc
  5.  
  6. // get size of square
  7. const longest = data.reduce((acc, arr) => {
  8. const x = arr[0] + arr[2];
  9. const y = arr[1] + arr[3];
  10. const longerCoord = x > y ? x : y;
  11. return acc > longerCoord ? acc : longerCoord;
  12. }, 0)
  13.  
  14. // pt 1
  15.  
  16. const square = new Array(longest + 1).fill(new Array(longest + 1).fill(0))
  17.  
  18. const applyCoordsToSquare = (square, coords) => {
  19. return square.map((row, i) => {
  20. if (coords[1] <= i && i < (coords[1] + coords[3])) {
  21. return row.map((point, i) => {
  22. if (coords[0] <= i && (i < coords[0] + coords[2])) {
  23. return point + 1;
  24. }
  25. return point;
  26. })
  27. }
  28. return row
  29. })
  30. }
  31.  
  32. const filledSquare = data.reduce(applyCoordsToSquare, square);
  33.  
  34. const totalOverlapping = filledSquare.reduce((acc, row) => acc + row.reduce((acc, point) => point > 1 ? acc + 1 : acc, 0), 0)
Add Comment
Please, Sign In to add comment