알고리즘
프로그래머스 level2 : 요격 시스템 - Java
mezo
2023. 6. 6. 00:41
728x90
반응형
스케줄링 문제와 매우 유사.
스케줄링 문제와 비슷하게 끝나는 시간을 기준으로 오름차순을 하고
반복문을 통해서 하나씩 시작점, 종점에 포함되는지 비교하면됨.
Arrays.sort(targets, (o1, o2) -> {
if(o1[1] == o2[1]) return o1[0] - o2[0];
return o1[1] - o2[1];
});
위 코드로 종점을 오름차순 정렬.
import java.util.*;
class Solution {
public int solution(int[][] targets) {
int answer = 0;
Arrays.sort(targets, (o1, o2) -> {
if(o1[1] == o2[1]) return o1[0] - o2[0];
return o1[1] - o2[1];
});
int end = targets[0][1];
answer++;
for(int[] target: targets){
// end가 구간에 들어가지 않는다면 end 재설정 , 요격수 증가
if(target[0] >= end){ // 개구간이기때문에 =도 포함
end = target[1];
answer++;
}
}
return answer;
}
}
728x90
반응형