Solución

@abrahamjlr·20/4/2026TypeScript
solution.tsTypeScript
BASE_FARE: float = 2.50
RATE_PER_KM: float = 1.20
NIGHT_SURCHARGE_MULTIPLIER: float = 1.50
EXTRA_PASSENGER_FEE: float = 0.30
PASSENGER_THRESHOLD: int = 4
MINIMUM_FARE: float = 5.00

NIGHT_START_HOUR: int = 22
NIGHT_END_HOUR: int = 6

def is_night_time(hour: int) -> bool:
    return hour >= NIGHT_START_HOUR or hour <= NIGHT_END_HOUR

def calculate_distance_cost(distance: float, hour:int) -> float:
    cost: float = 0.0
    rate: float = RATE_PER_KM

    if is_night_time(hour):
        rate *= NIGHT_SURCHARGE_MULTIPLIER

    cost = rate * distance
    return cost

def calculate_extra_passengers_fee(passengers: int) -> float:
    cost: float = 0.0

    if passengers > PASSENGER_THRESHOLD:
        extra_passengers: int = passengers - PASSENGER_THRESHOLD
        cost = extra_passengers * EXTRA_PASSENGER_FEE

    return cost

def calculate_taxi_fare(distance: float, hour: int, passengers: int) -> float:
    distance_cost: float = calculate_distance_cost(distance, hour)
    extra_fee: float = calculate_extra_passengers_fee(passengers)

    total_fare: float = BASE_FARE + distance_cost + extra_fee

    cost: float = max(total_fare, MINIMUM_FARE)

    return cost
0respuestas
Respuestas

Aún no hay respuestas

¡Sé el primero en responder!

Escribir un comentario

Recuerda ser amable. Estás comentando la solución de otra persona. Comparte tu perspectiva de forma constructiva y respetuosa.

Debes iniciar sesión para publicar un comentario.