반응형
import java.util.*;
class Solution {
public int solution(int[][] routes) {
int answer =0;
Arrays.sort(routes,new NC());
int temp = routes[0][1];
for(int i=1;i<routes.length;i++){
if(routes[i][0] <= temp){
temp = Math.min(temp,routes[i][1]);
}else{
answer++;
temp = routes[i][1];
}
}
return answer + 1;
}
public class NC implements Comparator<int[]>{
@Override
public int compare(int[] o1, int[] o2){
return o1[0] - o2[0];
}
}
}
1. 차량 입장시간 오름차순 정렬
2. temp에 첫번째 입장 차량 나가는 곳 저장
3. 이값을 비교해서 카운팅
탐욕기법 현재차량이 나가는 장소를 기점으로 다음번째차량이 입장시간이 나가는 곳보다 작다면은 당연히 감시카메라가 중첩이된다. 이때 중첩했으므로 temp는 그 두차량중 가장 빨리 나오는 장소를 기점으로한다.
이렇게 최소값으로 비교해야 다음값을비교 하때 중첩되는지 안되는지 판단가능
비교값이 더크다면 당연히 감시카메라를 새롭게 만들어야한다. 이때는 temp를 초기화.
반응형
'ProgramSoliving' 카테고리의 다른 글
프로그래머스 : 가장먼노드 (0) | 2020.12.27 |
---|---|
프로그래머스 : 징검다리 (0) | 2020.12.27 |
프로그래머스 : 체육복 (0) | 2020.12.23 |
프로그래머스 : 조이스틱 (0) | 2020.12.23 |
프로그래머스 : 큰 수 만들기 (0) | 2020.12.23 |