팁!
Array.flat() => 이차원 배열을 1차원 배열로 나타내줌
[ [1,2], [3,4], [5,7]] -> [1, 2, 3, 4, 5, 7]
내가 생각하고 있던 풀이법이 맞았다.
0으로 차있는 배열을 선언한 뒤 각 인덱스 (길이2짜리)에 속하는 부분을 +1 해줌
그러다가 2이상이 된 경우 그게 겹치는 애이므로 2이상으로 이루어진 배열의 길이를 return
function solution(lines) {
const ans = new Array(200).fill(0)
for (i=0; i<3; i++) {
// 반복물을 돌며 한 줄의 최소값을 저장
left = lines[i][0]
// 최대값을 저장
right = lines[i][1]
// 음수를 위한 +100 인덱스이기 문에 +100 (b는 100까지이니)
for(j=left; j<right; j++) {
ans[j+100] += 1
}
}
return ans.filter(v => v>=2).length
}
생각했던 풀이방법은 맞았지만 2차원 배열의 값들을 어떻게 선분에 표시하는지가 어려웠던 문제..
최소, 최대를 구하는 것이 아니라 각 속 배열의 좌측값과 우측값을 저장한 후
그 길이에 맞춰 0으로 채워둔 배열에 +1씩을 해주면 됐다..