Files
wehub-resource-sync dde272c4b8
i18n - Build Validation / Validate i18n Builds (24) (push) Has been cancelled
CI - Node.js / Lint (24) (push) Has been cancelled
CI - Node.js / Build (24) (push) Has been cancelled
CI - Node.js / Test (24) (push) Has been cancelled
CI - Node.js / Test - Upcoming Changes (24) (push) Has been cancelled
CI - Node.js / Test - i18n (italian, 24) (push) Has been cancelled
CI - Node.js / Test - i18n (portuguese, 24) (push) Has been cancelled
CD - Docker - GHCR Images / Build and Push Images (push) Has been cancelled
chore: import upstream snapshot with attribution
2026-07-13 11:55:53 +08:00

1.9 KiB

id, title, challengeType, dashedName
id title challengeType dashedName
68b7687dded630607aceccaf Challenge 47: Caught Speeding 29 challenge-47

--description--

Given an array of numbers representing the speed at which vehicles were observed traveling, and a number representing the speed limit, return an array with two items, the number of vehicles that were speeding, followed by the average amount beyond the speed limit of those vehicles.

  • If there were no vehicles speeding, return [0, 0].

--hints--

speeding([50, 60, 55], 60) should return [0, 0].

({test: () => { runPython(`
from unittest import TestCase
TestCase().assertEqual(speeding([50, 60, 55], 60), [0, 0])`)
}})

speeding([58, 50, 60, 55], 55) should return [2, 4].

({test: () => { runPython(`
from unittest import TestCase
TestCase().assertEqual(speeding([58, 50, 60, 55], 55), [2, 4])`)
}})

speeding([61, 81, 74, 88, 65, 71, 68], 70) should return [4, 8.5].

({test: () => { runPython(`
from unittest import TestCase
TestCase().assertEqual(speeding([61, 81, 74, 88, 65, 71, 68], 70), [4, 8.5])`)
}})

speeding([100, 105, 95, 102], 100) should return [2, 3.5].

({test: () => { runPython(`
from unittest import TestCase
TestCase().assertEqual(speeding([100, 105, 95, 102], 100), [2, 3.5])`)
}})

speeding([40, 45, 44, 50, 112, 39], 55) should return [1, 57].

({test: () => { runPython(`
from unittest import TestCase
TestCase().assertEqual(speeding([40, 45, 44, 50, 112, 39], 55), [1, 57])`)
}})

--seed--

--seed-contents--

def speeding(speeds, limit):

    return speeds

--solutions--

def speeding(speeds, limit):
    speeding = 0
    total_over = 0

    for speed in speeds:
        if speed > limit:
            speeding += 1
            total_over += (speed - limit)
    
    if speeding == 0:
        return [0, 0]
    
    return [speeding, total_over / speeding]