겹치는 선분의 길이

정하윤·2022년 11월 5일
0
function solution(lines) {
  lines = lines.map((line) => [line[0] + 100, line[1] + 100]); // -100부터100까지 이므로 200개 구함
  let arr = [];
  for (let i = 0; i <= 200; i++) {
    arr.push(0);  //빈배열에 0을 200개 넣음
  }
  for (let i = 0; i < lines.length; i++) {
    let line = lines[i];
    if (line[0] > line[1]) {
      line = [line[1], line[0]]; //왼쪽의수가 클경우 오른쪽으로 옮겨줌
    }
    for (let j = line[0]; j < line[1]; j++) {
      arr[j] += 1;     //지나간 곳에 1씩더해줌
    }
  }
  let answer = 0;
  for (let i = 0; i < arr.length; i++) {
    if (arr[i] >= 2) {  // 2번이상 지나간곳(겹치는 선분)이 있을때 1개씩 증가
      answer++;
    }
  }
  return answer;
}

0개의 댓글