Two tortoises named A and B must run a race. A starts with an average speed of 720 feet per hour. Young B knows she runs faster than A, and furthermore has not finished her cabbage.
When she starts, at last, she can see that A has a 70 feet lead but B's speed is 850 feet per hour. How long will it take B to catch A?
More generally: given two speeds v1 (A's speed, integer > 0) and v2 (B's speed, integer > 0) and a lead g (integer > 0) how long will it take B to catch A?
The result will be an array [hour, min, sec] which is the time needed in hours, minutes and seconds (round down to the nearest second) or a string in some languages.
If v1 >= v2 then return nil, nothing, null, None or {-1, -1, -1} for C++, C, Go, Nim, Pascal, COBOL, Erlang, [-1, -1, -1] for Perl,[] for Kotlin or "-1 -1 -1".
Examples:
(form of the result depends on the language)
race(720, 850, 70) => [0, 32, 18] or "0 32 18"
race(80, 91, 37) => [3, 21, 49] or "3 21 49"
Note:
- See other examples in "Your test cases".
- In Fortran - as in any other language - the returned string is not permitted to contain any redundant trailing whitespace: you can use dynamically allocated character strings.
** Hints for people who don't know how to convert to hours, minutes, seconds:
- Tortoises don't care about fractions of seconds
- Think of calculation by hand using only integers (in your code use or simulate integer division)
- or Google: "convert decimal time to hours minutes seconds"
import math
def race(v1, v2, g):
alist=[]
temp=0
if v2<=v1:
return None
sec=(g/((v2-v1)/3600))
alist.append(sec//3600)
alist.append((sec%3600)//60)
alist.append(math.floor((sec%3600)%60))
return alist
'알고리즘 문제 > CodeWar' 카테고리의 다른 글
Testing 1-2-3 (0) | 2022.10.16 |
---|---|
Are the numbers in order? (0) | 2022.10.16 |
Consonant Value (0) | 2022.10.16 |
Backspaces in string (0) | 2022.10.13 |
Data Reverse (0) | 2022.10.13 |