Study/Problem Solving

[PROGRAMMERS] 요격 시스템

monitor 2023. 4. 30. 17:16
import java.util.*;
class Solution {
    public int solution(int[][] targets) {
        int answer = 1;
        Arrays.sort(targets,(o1,o2) -> o1[1] - o2[1]);

        int idx = 0;
        int max = targets[0][1];
        while(idx < targets.length - 1){
            if(max <= targets[idx+1][0]){
                max = targets[idx+1][1];
                answer++;
            }
            idx++;
        }
        return answer;
    }
}

 

Start의 오름차순이 아닌 end point의 오름차순인 이유는

 

 

start의 오름차순일때를 생각해보면...

 

max 포인트가 뒷포인트에 있기 때문에 뒤에 값이 매우 큰 값이 첫번째에 나와버리면 뒤에 있는 배열들은 모두 커버가 되지 않는다.