Algorithm/프로그래머스

프로그래머스 - 요격 시스템

whyWhale 2023. 6. 7.

문제 설명

A나라가 B를 침략하기 위해 [s,e]까지 피해를 줄 수있는 미사일을 발포한다.

B나라는 이 사실을 알고 A나라에서 발포한 미사일을 모두 격추 시키려 할 때, 최소한의 개수로 미사일을 격파시킬 수 있는 개수를 구하는 문제이다.

 

해당 문제는 한 점에서 최대 격추시킬 수 있는 미사일의 개수를 구하는 것이 핵심이다.

풀이

public int solution(int[][] targets) {
        
        Arrays.sort(targets,(a,b)-> {
            if(a[0] == b[0]){
                return a[1]-b[1];
            }
            
            return a[0] - b[0];
        });
        int answer=1;
        int end=targets[0][1];
        for(int i=1; i<targets.length; i++){
            int nextStart=targets[i][0];
            int nextEnd=targets[i][1];
            
            if(nextStart<end){
                end=Math.min(end,nextEnd);
                continue;
            }
            
            answer++;
            end=nextEnd;
        }
        return answer;
    }

댓글