728x90
코드 힌트:
- 카메라 설치 기준:
- 차량이 고속도로를 나가는 시점에 카메라를 설치하는 것이 가장 효율적입니다.
- 카메라를 설치한 이후에도 다른 차량이 해당 카메라에 걸리는지 확인합니다.
- 차량의 경로가 카메라의 범위를 벗어나는 경우 새로운 카메라를 설치합니다.
- 정렬:
- 차량이 고속도로에서 나가는 시점에 맞춰 오름차순으로 정렬합니다.
- 정렬된 상태에서 경로를 순차적으로 확인해 카메라 설치 여부를 결정합니다.
- 로직 흐름:
- 차량이 나가는 시점을 기준으로 정렬한 후, 가장 먼저 나가는 차량에 카메라를 설치합니다.
- 그 이후 차량들의 경로가 카메라 범위 안에 포함되는지 확인한 후, 포함되지 않으면 새로운 카메라를 설치합니다.
정답은 더보기 클릭
더보기
import java.util.*;
class Solution {
public int solution(int[][] routes) {
int result = 0; // 카메라 설치 수
// 차량들이 고속도로에서 나가는 시점을 기준으로 정렬 (오름차순)
Arrays.sort(routes, (o1, o2) -> {
return o1[1] - o2[1];
});
result++; // 첫 번째 차량에 대해 카메라를 설치
int max = routes[0][1]; // 첫 차량이 나가는 시점에 카메라 설치
// 나머지 차량들의 경로를 확인
for (int[] route : routes) {
// 현재 카메라로 해당 차량을 감시할 수 없는 경우
if (max < route[0]) {
result++; // 새로운 카메라 설치
max = route[1]; // 새로운 카메라 위치를 현재 차량의 나가는 지점으로 갱신
}
}
return result; // 설치한 카메라 수 반환
}
}
728x90
'프로그래머스(Java) > Level 3' 카테고리의 다른 글
[프로그래머스] 스티커 모으기(2) (2) | 2024.09.29 |
---|---|
[프로그래머스] 기지국 설치 (1) | 2024.09.13 |
[프로그래머스] 최고의 집합 (0) | 2024.09.03 |
[프로그래머스] 숫자 게임 (0) | 2024.09.03 |
[프로그래머스] 베스트앨범 (1) | 2024.09.02 |