알고리즘/프로그래머스
[프로그래머스] 단속카메라 Java 풀이 및 해설
승민아
2024. 5. 7. 09:06
https://school.programmers.co.kr/learn/courses/30/lessons/42884#
풀이 방법
- 진출 지점을 기준 오름차순 정렬한다.
- 다음 차량의 진출 시점은 현재 차량의 진출 시점보다 같거나 크다가 보장된다.
- 그럼 다음 차량의 진입 시점을 가지고 현재 카메라로 찍을 수 있는지 없는지 판별할 수 있다.
- 첫 카메라는 첫 차량의 진출 지점에 설치한다.
- 다음 카메라의 설치 필요는 현재 카메라로 다음 차량의 진입을 찍을 수 없을때 설치한다.
전체 코드
import java.util.*;
class Solution {
public int solution(int[][] routes) {
int answer = 0;
Arrays.sort(routes, (o1, o2) -> {
return o1[1] - o2[1];
});
int end = routes[0][1]; // 진출 지점에 카메라 설치
answer++;
for(int i=1; i<routes.length; i++) {
if(end < routes[i][0]) { // 다음 자동차의 진입이 현재 카메라 위치보다 크다면 새로운 카메라가 필요함.
end = routes[i][1];
answer++;
}
}
return answer;
}
}