프로그래머스 요격 시스템 (Kotlin, 코틀린)

jonghyukLee·2023년 9월 24일
1

이번에 풀어본 문제는
프로그래머스 요격 시스템 입니다.

📕 문제 링크

❗️코드

class Solution {
    fun solution(targets: Array<IntArray>): Int {
        var answer = 0
        targets.sortBy { it[1] }

        var end = Integer.MIN_VALUE

        for (target in targets) {
            val (s, e) = target
            if (s >= end) {
                answer++
                end = e
            }
        }
    
    return answer
    }
}

📝 풀이

미사일을 모두 요격시킬 수 있는 최소 개수를 반환하는 문제입니다.
먼저 (s, e)쌍으로 이루어진 targets 배열을 e 값을 기준으로 오름차순 정렬해주면 매 시점 가장 우선적으로 요격시켜야 경우의 수를 추적할 수 있습니다.
end 변수는 이전에 설치한 요격 미사일의 위치를 담고 있으며, 다음 설치할 위치를 탐색하는 과정에서 end 보다 작은 값, 즉 이미 요격 범위에 포함된 target은 넘어가주면 됩니다.

profile
머무르지 않기!

0개의 댓글