반응형
https://school.programmers.co.kr/learn/courses/30/lessons/181188
<문제 풀이>
- greedy 문제이며 프로그래머스 Lv3 단속 카메라 문제와 거의 흡사한 문제이다.
- 아래의 포스팅은 참고자료 단속카메라 참고자료이다.
https://kcw0360.tistory.com/29
- 개구간(s, e)으로 표현되는 폭격 미사일 입력값을 e를 기준으로 정렬을 수행한다.
- 반복문으로 폭격미사일을 확인한다. 이때 e구간을 기준으로 체크한다.
- 요격 미사일 발사지점이 s지점보다 작거나 같을 때 갱신한다.
- s와 e 지점에서 발사한 미사일은 요격할 수 없기 때문에 =을 포함시켰다.
<Code>
def solution(targets):
answer = 0
targets.sort(key=lambda x: x[1]) # 개구간(s,e)의 끝지점 e를 기준으로 정렬
check_point = -1 # 요격 미사일 발사 지점 (초기화)
for target in targets:
if check_point <= target[0]: # 요격 미사일 발사 지점이 개구간 s보다 작거나 같은 경우
answer += 1 # 요격 미사일 추가
check_point = target[1] # 발사 지점 갱신
return answer
import java.util.*;
class Solution {
public int solution(int[][] targets) {
int answer = 0;
Arrays.sort(targets, Comparator.comparingInt((int[] o) -> o[1]));
int checkPoint = -1;
for (int[] target : targets) {
if (checkPoint <= target[0]) {
answer += 1;
checkPoint = target[1];
}
}
return answer;
}
}
※ 잘못된 점, 개선점 등이 있다면 언제든 댓글로 알려주시면 감사하겠습니다.
반응형
'Alogorithm > programmers' 카테고리의 다른 글
[programmers] Lv2 124 나라의 숫자 - Python (0) | 2023.04.18 |
---|---|
[programmers] Lv2 두 원 사이의 정수 쌍 - Python (0) | 2023.04.17 |
[programmers] Lv3 단속카메라 - Python (0) | 2023.04.14 |
[programmers] Lv2 연속된 부분 수열의 합 - Python (0) | 2023.04.07 |
[programmers] Lv2 마법의 엘리베이터 - Python (0) | 2023.04.04 |