코테연습 정렬

OkGyoung·2023년 6월 8일
0

2023.11 이전 자료

목록 보기
29/30

문제

[[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++

profile
이유를 생각하는 개발자

0개의 댓글