Algorithm/프로그래머스
프로그래머스 - 요격 시스템
whyWhale
2023. 6. 7. 18:13
문제 설명
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;
}