코딩테스트

코딩테스트 겹치는 선분의 길이

김도현2 2023. 6. 23. 23:41
반응형

코딩테스트 겹치는 선분의 길이

 

문제 설명

 

출력 예시

선이 겹치는 구간의 길이를 출력하세요. 라는 문제네요!

선이 몇개가 겹치든 겹치기만한 곳의 길이를 재면 되는 문제입니다.

 

 

let lines  =[[0, 5], [3, 9], [1, 10]];
var answer = 0;
let check = 0;

for(let i=-100; i<=100; i++){
    
}

//8

for문으로 -100부터 100까지 반복해서 선 세개가 겹치는지 확인하며

두개 이상 겹칠시 길이를 1씩 추가 하는 코드를 짜보겠습니다!

 

 

let lines  =[[0, 5], [3, 9], [1, 10]];
var answer = 0;
let check = 0;

for(let i=-100; i<=100; i++){
    check = 0;
    if(lines[0][0]<=i && lines[0][1] > i) check++;
    if(lines[1][0]<=i && lines[1][1] > i) check++;
    if(lines[2][0]<=i && lines[2][1] > i) check++;
    if(check > 1) answer++;
}

//8

배열의 요소가 -100일수도 있고 100일수도 있으니 -100부터 100까지 훑어보겠습니다.

 

만약 i가 선 두개이상 조건안에 든다면 check를 증가시켜 check가 2 이상일 시 길이 1을 인정합니다.

 

그렇다면 총 겹치는 구간이 [3, 5] [1, 5] [3, 9] 이므로 총 줄이 겹치는 구간을 보면 8 입니다!