[JavaScript] 프로그래머스 단속카메라 LEVEL3

문제출처

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문 종료

좋은 웹페이지 즐겨찾기