728x90
결국 선분들을 그릴때 첫번째 선분과 마지막 선분이 존재하게 되는데, 이를 이용해서 해결하였다.
start에 최초로 그려지는 선분의 시작점을,
end에 마지막에그려지는 선분의 종단점을 입력해두고 그 차이만큼 0으로 채워진 리스트를 만들어준다.
이후 각 선분들의 길이를 idx에 대입하여 1씩 더해준다.
선분들을 다 더해주었을때 리스트에 2 이상인 부분들은 겹친부분이 된다.
function solution(lines) {
const start = Math.min(...lines.flat())
const end = Math.max(...lines.flat())
const lst = [...Array(end-start)].fill(0)
lines.forEach(el => {
for(let i=el[0];i<el[1];i++){
lst[i-start]+=1
}
})
return lst.reduce((a,c)=> c>1 ? a+1 : a ,0)
}
728x90
'FrontEnd > 프로그래머스' 카테고리의 다른 글
로그인 성공 (0) | 2023.03.13 |
---|---|
[JS] 특이한 정렬 (0) | 2023.03.12 |
[JS] 저주의 숫자 3 (0) | 2023.03.02 |
[JS] 안전지대 (0) | 2023.02.28 |
[JS] 캐릭터의 좌표 (0) | 2023.02.28 |