본문 바로가기

ProgramSoliving

프로그래머스 : 단속카메라

반응형
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