문제 보러 가기 👈 클릭!
가장 먼저 고속도로를 진입 한 순서대로 정렬
로직 👇
def solution(routes):
routes.sort(reverse = True) #pop()연산은 오른쪽 값을 제거하므로 내림차순 정렬
answer = 0
while routes:
answer += 1
start, end = routes.pop()
while routes and routes[-1][0] <= end:
s, e = routes.pop()
start, end = max(start, s), min(end, e)
return answer
진출 구간순으로 정렬
-> 진출 구간은 해당 차량이 단속카메라를 만날 수 있는 마지막 구간
다음 차량이 현재 차량과 겹치는 구간이 있을 경우, 계속 반복
다음 차량이 현재 차량과 겹치는 구간이 없을 경우, 진출 구간 갱신
진출 구간순으로 정렬하였으므로 겹치는 구간이 있는 모든 차량은 기준 차량이 고속도로를 나가기 전까지 나가지 않는다.
def solution(routes):
answer = 0
last_camera = float('-inf')
routes.sort(key=lambda x: x[1]) #진출 순서대로 정렬
for s, f in routes:
if s > last_camera: #겹치는 구간 없는 경우
answer += 1
last_camera = f
return answer
문제를 읽고 정확히 그대로 구현하는 방법도 좋지만, 이렇게 똑같은 결과를 내는 센스있는 다른 방법을 생각할 수 있는 힘을 기르고 싶다!