현재 시점에서 가장 최적의 경우를 계산해야하느 문제이다.
해당 문제는 현 시점에서 3가지 경우가 존재한다.
1. 현재 카메라 위치가 curIn과 curOut 사이에 있는경우 -> 이때는 변경이 없다.
2. curOut이 현재 cameraPosition보다 안쪽인경우 -> 이때는 cameraPostion을 안쪽으로 이동시킨다.
3. 완전 새로운 구간이 시작되어 겹치지 않는 경우 -> cameraPostion을 새로운 curOut으로 변경
function solution(routes) {
var answer = 1;
// 진입시점을 기준으로 정렬합니다.
routes.sort((a,b) => a[0] - b[0])
let cameraPostion = routes[0][1]; // 첫번재 카메라 위치는 첫 구간의 마지막 위치입니다.
for(let i=1; i< routes.length; i++){
const [curIn, curOut] = routes[i];
// 현재 카메라 위치가 curIn과 curOut 사이에 있는경우 -> 이때는 변경이 없다.
// curOut이 현재 cameraPosition보다 안쪽인경우 -> 이때는 cameraPostion을 안쪽으로 이동시킨다.
if( curOut <= cameraPostion){
cameraPostion = curOut
continue;
}
// 완전 새로운 구간이 시작되어 겹치지 않는 경우 -> cameraPostion을 새로운 curOut으로 변경
if(cameraPostion < curIn) {// 이때, 같은 경우는 안된다.
cameraPostion = curOut;
answer++;
continue;
}
}
return answer;
}