thkyang324

[프로그래머스] 요격 시스템 (Python 파이썬) 본문

코딩테스트

[프로그래머스] 요격 시스템 (Python 파이썬)

thkyang324 2023. 4. 15. 14:07

요격 시스템

Greedy, 레벨2

https://school.programmers.co.kr/learn/courses/30/lessons/181188


모든 미사일을 격추해야 한다. 좌표로 정렬 후 앞에 있는 미사일부터 함께 처리할 수 있는 구간을 찾고, 함께 요격할 수 없는 미사일이 등장하면 탐색 구간을 갱신하고 정답에 1씩 더한다.

 

"""
열린구간 (s,e)에 폭격미사일이 수평으로 날아옴.
요격을 통해 여러개의 폭격미사일을 처리할 수 있음.

- targets의 경우 길이가 길지 않음. 이를 순회하여 풀 수 있는 문제로 최대한 바꿀 것
"""
def solution(targets):
    answer = s = e = 0
    for a, b in sorted(targets, key=lambda x:list(reversed(x))):
        if e <= a:
            answer += 1
            s, e = a, b
    return answer
Comments