반응형
코딩테스트 겹치는 선분의 길이
문제 설명
출력 예시
선이 겹치는 구간의 길이를 출력하세요. 라는 문제네요!
선이 몇개가 겹치든 겹치기만한 곳의 길이를 재면 되는 문제입니다.
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 입니다!