현인
[프로그래머스] 요격 시스템 with JavaScript 본문
문제
<LV2> 요격시스템
https://school.programmers.co.kr/learn/courses/30/lessons/181188?language=javascript
소요시간
30분
풀이 계획
풀이 방법
- (s,e) 구간이 여러 개 주어지는 배열을 s를 기준으로 오름차순 정렬
- 첫 번째 원소의 e 값을 기록
- 두 번째 원소 부터 순차적으로 접근
- 현재 타겟의 s 값이 기록된 e 값 보다 크거나 같은 경우
- answer 1 증가시킨다. (새로운 구간을 발견 했기에 요격할 미사일이 하나 더 필요해짐)
- 기록된 e 값을 현재 타겟의 e 값으로 갱신
- 현재 타겟의 s 값이 기록된 e 값 보다 작은 경우
- 현재 타겟의 e 값이 기록된 e 값 보다 작으면 e 값을 현재 타겟의 e 값으로 갱신 (기록하고 있는 구간안에 포함되는 구간을 처리하기 위함)
- 현재 타겟의 s 값이 기록된 e 값 보다 크거나 같은 경우
결과
정답 코드
더보기
function compare(a, b) {
if (a[0] < b[0]) {
return -1;
}
if (a[0] > b[0]) {
return 1;
}
return 0;
}
function solution(targets) {
var answer = 1;
targets.sort((a,b) => compare(a, b));
var e = targets[0][1];
targets.shift();
targets.forEach((t)=> {
if (t[0] >= e) {
answer += 1;
e = t[1];
}
else{
e = t[1] < e ? t[1] : e;
}
})
return answer;
}
반응형
'알고리즘' 카테고리의 다른 글
MST (0) | 2023.07.06 |
---|---|
[프로그래머스] 행렬 테두리 회전하기 with JS (0) | 2023.04.12 |
[프로그래머스] 튜플 with JS (0) | 2023.04.03 |
[프로그래머스] 코딩테스트 연습 with JS (0) | 2023.04.02 |
[프로그래머스] 징검다리 건너기 with JS (0) | 2023.04.02 |