#실수인 x좌표에서도 발사 = (4,5) 일경우 요격가능
def solution(targets):
answer = 0
targets.sort()
temp = targets.pop(0)
for i in targets :
if temp[1] <= i[0] : #시작점이 더 뒤에 있을 경우 = 새로운 미사일로 처리
answer += 1
temp = i
else : #시작점이 이전 범위 안에 들어갈 경우 = 하나의 미사일로 처리가능
if temp[1] > i[1] : #범위가 더 좁아지는 경우
temp = i
return answer + 1 # 마지막 미사일이 더해지지않아 마지막에 추가해줬다.
문제정리
공통으로 겹치는 부분을 처리하는 풀이이다.
풀이과정
범위에 대해서 무조건 처리해야하기 때문에 정렬, 순회하며 조건에 따라 처리하였다.
풀이 후
def solution(targets):
answer = 0
targets.sort(key=lambda x: x[1])
temp = 0
for i in targets:
if i[0]<temp:
continue
else:
answer+=1
temp = i[1]
return answer
나는 전체를 순회하며 폭격 미사일에 따라 하나하나 확인하여 조건을 통해 확인하였으나
여러 사람들이 요격 미사일을 기준으로 가장 마지막에 요격한 것을 체크하여 해당 값에 들어올 경우 이전의 미사일로 처리하는 것으로 풀이하였다.
즉 먼가 그리디 같은 느낌으로 풀이하였는데 깔끔한 것 같다.