1. 문제 풀이 아이디어
- 차량 경로를 끝나는 지점 기준으로 정렬하여 문제를 해결할 수 있다.
2. 나의 정답 코드
class Solution {
public int solution(int[][] routes) {
int answer = 1;
Arrays.sort(routes, Comparator.comparingInt(i -> i[1]));
int cam = routes[0][1];
for (int i = 1; i < routes.length; i++) {
if (routes[i][1] < cam || cam < routes[i][0]) {
cam = routes[i][1];
answer++;
}
}
return answer;
}
}
3. 정리
Arrays.sort
메서드를 사용해 차량 경로를 끝나는 지점을 기준으로 정렬한다.
- 첫 번째 경로의 끝나는 지점(
cam = routes[0][1]
)에 카메라를 설치한다.
- 모든 경로를 순회하면서 카메라가 커버할 수 없는 경로라면, 해당 경로의 끝나는 지점에 카메라를 설치하고
answer
를 증가시킨다.
- 반복문을 종료한 후 최종적으로
answer
를 반환하여 문제를 해결한다.
Share article