👀 문제
https://school.programmers.co.kr/learn/courses/30/lessons/181188
👊 도전
1. 설계
- targets[1]을 기준으로 오름차순 정렬
- end(현재 내가 요격할 수 있는 max x좌표) 변수 선언
- targets 순회하며 target[1]이 end내 포함되면 패스
- 아니라면 새로 요격해야하므로 end를 target[1]로 갱신 및 answer(요격 횟수)++
2. 구현
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
import java.util.*
class Solution {
fun solution(targets: Array<IntArray>): Int {
var answer: Int = 0
targets.sortBy { it[1] }
var end = 0
targets.forEach { target ->
if (target[0] >= end) {
answer++
end = target[1]
}
}
return answer
}
}
3. 결과
🤟 성공 🤟
4. 설명
-
target[1]을 기준으로 오름차순 정렬한다
-
target[1]이 end에 포함되는지 체크한다
- end는 내가 수용할 수 있는 최대 x 좌표값이다.
- target[1]이 end에 포함되지 않으면(같음도 포함, 왜냐하면 같다는 뜻은 요격 범위에 포함되지 않는다는 뜻이므로) end를 해당 값으로 갱신하고 answer++한다.