문제
https://school.programmers.co.kr/learn/courses/30/lessons/181188
코드
function solution(targets) {
// 요격 횟수
var answer = 0;
// 구간의 시작을 중심으로 오름차순 정렬
targets.sort((a, b) => a[0] - b[0]);
let point = 0; // 범위의 끝을 기억하는 변수
targets.forEach((target) => {
// 일단 한발 쏘기
answer++;
// 미사일 구간이 이전에 쏜 요격 미사일로 커버할 수 있으면
if (point > target[0]) {
answer--; // 요격 취소
// 겹치는 구간의 끝점을 point로 설정
point = Math.min(point, target[1]);
} else {
// 새로 한발 쏴야하는게 맞다면 현재 날아온 미사일의 구간의 끝을 point로 설정
point = target[1];
}
});
return answer;
}
'Algorithm > Programmers' 카테고리의 다른 글
[Lv.2] 이모티콘 할인행사 - JavaScript (0) | 2023.05.08 |
---|---|
[Lv.2] 과제 진행하기 - JavaScript (0) | 2023.04.22 |
[Lv.2] 리코쳇로봇 - JavaScript (0) | 2023.04.17 |
[Lv.2] 미로 탈출 - JavaScript (0) | 2023.04.11 |
[Lv.2] 양궁 대회 - JavaScript (0) | 2023.03.28 |
댓글