function solution(routes) {
let answer = 1; // 최소 필요한 카메라 개수 (최소 한 대는 필요함)
// 경로의 시작 지점을 기준으로 오름차순 정렬
routes.sort((a, b) => a[0] - b[0]);
// 첫 번째 경로의 종료 지점
let out = routes[0][1];
// 두 번째 경로부터 마지막 경로까지 반복
for (let i = 1; i < routes.length; i++) {
// 현재 카메라가 감시할 수 없는 새로운 경로의 시작 지점이 나타나면
if (out < routes[i][0]) {
answer++; // 카메라 추가 설치
out = routes[i][1]; // 새로운 경로의 종료 지점으로 업데이트
}
// 현재 종료 지점이 새로운 경로의 종료 지점보다 크다면 업데이트
// (더 좁은 범위로 감시하도록 조정)
if (out > routes[i][1]) {
out = routes[i][1];
}
}
return answer;
}