요격 시스템 문제 바로가기

나의 풀이

def solution(targets):
    count = 0
    current = 0
    targets.sort(key=lambda x: x[1])

    for t in targets:
        if current <= t[0]:
            current = t[1]
            count += 1
    return count

CODE REVIEW

  1. 최댓값을 구하라 해서 미사일 배치를 어떻게 해야할지 막막했는데, targets을 오름차순으로 정렬하면 풀기가 편리해진다.
  2. 첫 번째 미사일을 범위로 정하고 다음 미사일들이 이 범위에 속하는지 아닌지를 확인하며 진행하는 방식이다.
  3. x[0]이 아닌 x[1]을 key로 정렬하는 이유는, 예제에서 볼 수 있듯이 최솟값을 기준으로 하면 반례가 생기기 때문이다.