👀 문제
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++한다.