본문으로 건너뛰기

프로그래머스 - 요격 시스템

프로그래머스 - 요격 시스템

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;
}