😎 링크
프로그래머스 - 겹치는 선분의 길이
😎 고려할 사항
- -100≤범위≤100 안에 들어가게 될 선분들이 놓인 공간이 길이가 200인 배열이라고 생각하자.
- 그니까 그림을 그려보면 이렇게 되는 거다 (겹친 부분은 주황색으로 표시)
- 배열을 0으로 채운 뒤, 선분이 지나는 곳마다 +1을 해준다
- 2 이상의 수로 채워진 부분 == 겹치는 부분
😎 소스코드
function solution(lines) {
var answer = 0;
let lineMap = new Array(200);
lineMap.fill(0);
for (let i = 0; i < 3; i++) {
let left = lines[i][0];
let right = lines[i][1];
for (let j = left; j < right; j++) {
lineMap[j + 100] += 1;
}
}
for (let i in lineMap) {
if (lineMap[i] > 1) {
answer += 1;
}
}
return answer;
}
😎 문법 정리
let newArr = [];
이 방법 뿐만 아니라, let newArr = new Array(배열길이);
로도 배열 선언 및 할당 가능
.fill(원소)
: 해당 원소로 배열을 채운다
풀이 방법 잘 봤습니다! 감사합니다~