문제출처
function solution(routes) {
let answer = 0;
const arr = routes.sort((a, b) => a[1] - b[1]);
let visit = new Array(routes.length).fill(0);
visit[0] = 1;
let now = arr[0][1];
while (true) {
for (let i=0; i<routes.length; i++) {
if (visit[i] === 1) continue;
if (arr[i][0] <= now && now <= arr[i][1]) {
visit[i] = 1;
}
}
answer++;
if (visit.indexOf(0) === -1) break;
now = arr[visit.indexOf(0)][1];
}
return answer;
}
풀이
- routes 배열을 차량이 나간 지점을 기준으로 오름차순 정렬
- 배열을 차례로 돌면서 현재 차량이 나간 지점에 몇개의 차들이 걸쳐져 있는지 찾고 해당 차들을
visit=1
로 표시
- visit 배열의 모든 원소가 1이면 while문 종료