[[4,5],[4,8],[10,14],[11,13],[5,12],[3,7],[1,4]]
2차원 공간에서 최소 횟수로 미사일 요격하기 각 미사일은 [[4,5], [4,8]]과 같이 2차원 배열로 나타남 미사일은 사이 1칸 공간에서 발사됨(1~2, 4~5)
답 :
def solution(targets):
answer = 1
targets.sort(key=lambda x:(x[0], x[1]))
temp = targets[0]
for target in targets[1:]:
if temp[1]<=target[0]:
temp = target
answer += 1
else:
temp[0] = max([temp[0],target[0]])
temp[1] = min([temp[1],target[1]])
return answer
문제풀이:
1. 핵심은 2차원 배열 정렬 후 범위에 1번째 target범위 저장
2. 새로운 target이 기존 범위와 겹친다면 겹치는 부분으로 범위를 저장하고 다음 것 비교
3. 새로운 target이 기존 범위와 안 겹친다면 범위에 새로운 target범위 저장 answer++