프로그래머스 - 요격 시스템
프로그래머스 - 요격 시스템
Link
https://school.programmers.co.kr/learn/courses/30/lessons/181188
접근 방법
- BOJ 회의실 배정과 정확히 똑같은 문제이다. 그리디 유형의 문제.
- 문제 풀이도 똑같은 논리로 접근하면 된다.
- 각 미사일의 길이 정보를 담은 targets 배열을 미사일의 최후방 좌표를 기준으로 오름차순 정렬해준다.
- 이전 미사일의 최후방 좌표가 0이라고 가정하고, 정렬된 배열을 순차 탐색하며 해당 미사일의 최전방 좌표가 이전 미사일의 최후방 좌표보다 작다면, 최후방 좌표를 최전방 좌표로 갱신해준 뒤에 답을 1 증가시키면 된다.
Code
function solution(targets) {
let answer = 0;
let prevMissileStarts = 0;
targets.sort((m1, m2) => {
return m1[1] - m2[1];
});
for (const missile of targets) {
const [nextMissileStarts, nextMissileEnds] = missile;
if (prevMissileStarts <= nextMissileStarts) {
answer += 1;
prevMissileStarts = nextMissileEnds;
}
}
return answer;
}