LC 0853 [M] Car Fleet - ALawliet/algorithms GitHub Wiki

class Solution:
    def carFleet(self, target: int, position: List[int], speed: List[int]) -> int:
        pair = [[p, s] for p, s in zip(position, speed)]
        
        stack = []
        for p, s in sorted(pair, reverse=True):
            d = target - p
            t = d / s # d = r*t, t = d/r
            stack.append(t)
            if len(stack) >= 2 and stack[-1] <= stack[-2]: # collision
                stack.pop() # reduce car fleets
        return len(stack)