from collections import deque
def solution(routes):
answer = 0
routes.sort(key=lambda x: x[1])
q = deque()
for route in routes:
s, e = route[0], route[1]
if q and q[0] < s:
answer += 1
q = deque()
q.append(e)
if q:
answer += 1
return answer
차량이 고속도로에서 나간 지점을 기준으로 정렬해서 만약 새로 들어온 차가 종료시간보다 크다면 다른 카메라가 필요한 경우이므로 answer + 1 해주고
아니라면 q에 저장하는 방식으로 해결
마지막에 q가 비워져있지 않다면 q에 남아있는 차량들이 하나의 단속 카메라로 감시할 수 있는것을 뜻하므로 + 1 해준다.
다른 분의 코드를 봤는데 더 효율적인 코드가 있어서 복붙...
def solution(routes):
routes = sorted(routes, key=lambda x: x[1])
last_camera = -30000
answer = 0
for route in routes:
if last_camera < route[0]:
answer += 1
last_camera = route[1]
return answer
생각해보니 어차피 deque에 저장해 논 종료시점보다 큰 시작 시점이 있을 때 deque를 모두 비우는 거면 굳이 deque에 저장해 놓을 필요가 없다.
그냥 종료시점 값만 저장해 놓고 있으면 된다.