프로그래머스 0단계: 정답률 48% - 겹치는 선분의 길이

안녕하세요.
오늘은 정답률 48% 겹치는 선분의 길이 문제를 풀어보겠습니다.

처음 문제해결은 부끄럽게 노가다로 완성했네요. 😢

function solution(lines) {
    var answer = [];
    lines.sort((a,b) => a[0]-b[0]);
    
    if(lines[0][1]>=lines[1][0]){
        if(lines[0][1]<=lines[1][1]){
            answer.push([lines[1][0],lines[0][1]])
        }
        else{
            answer.push([lines[1][0],lines[1][1]])
        }
    }
    if(lines[0][1]>=lines[2][0]){
        if(lines[0][1]<=lines[2][1]){
            answer.push([lines[2][0],lines[0][1]])
        }
        else{
            answer.push([lines[2][0],lines[2][1]])
        }
    }
    if(lines[1][1]>=lines[2][0]){
        if(lines[1][1]<=lines[2][1]){
            answer.push([lines[2][0],lines[1][1]])
        }
        else{
            answer.push([lines[2][0],lines[2][1]])
        }
    }
    switch (answer.length){
        case 0 :
            return 0;
        case 1 :
            return answer[0][1]-answer[0][0];
        case 2 :
            if(answer[0][1]>answer[1][0]){
                return answer[1][1]-answer[0][0];
            }
            else{
                return answer[0][1]-answer[0][0]+answer[1][1]-answer[1][0];
            }
        case 3 :
            answer.sort((a,b)=> a[1]-b[1])
            let value = answer[0][1]-answer[0][0];
            if(answer[0][1]>=answer[1][0]){
                value += answer[1][1]-answer[0][1];
                if(answer[0][1]>=answer[2][0]){
                    value += answer[2][1]-answer[0][1];
                }
                else{
                    value += answer[2][1]-answer[2][0];
                }
            }
            else{
                value += answer[1][1]-answer[1][0];
                if(answer[1][1]>=answer[2][0]){
                    value += answer[2][1]-answer[0][0];
                }
                else{
                    value += answer[1][1]-answer[1][0];
                    value += answer[2][1]-answer[2][0];
                }
            }
            return  value
    }
}

(추가!!)
이 방법은 좌표가 포함된 위치에 +1을 해준 뒤 2이상이면 두개 이상의 선분이 겹치는 부분이라고 판단해서 겹치는 부분을 구하는 방법인데 생각은 해봤는데 진짜로 되네요..
생각한대로 밀고나가는 연습을 해야겠습니다.

function solution(lines) {
    var answer = new Array(200).fill(0);
    lines.forEach(([a, b]) => {
        for(a;a<b;a++)answer[a+100]+=1
    });
    return answer.filter(el=>el>1).length;
}