CMU Coding Bootcamp
1from math import sqrt, ceil
2
3
4def numberOfSteps(bricks: int) -> int:
5 """
6 Given a number of bricks return how many steps would be required to use them all given that:
7 S(0) = 0
8 S(n) = S(n-1) + n
9 Formula: `S=(-1+sqrt(1+8*n))/2`
10 """
11 return ceil((-1 + sqrt(1 + 8 * bricks)) / 2)
12
13
14print("Testing numberOfSteps()...", end="")
15assert numberOfSteps(0) == 0
16assert numberOfSteps(1) == 1
17assert numberOfSteps(2) == 2
18assert numberOfSteps(3) == 2
19assert numberOfSteps(4) == 3
20assert numberOfSteps(6) == 3
21assert numberOfSteps(7) == 4
22assert numberOfSteps(10) == 4
23assert numberOfSteps(11) == 5
24assert numberOfSteps(55) == 10
25assert numberOfSteps(56) == 11
26print("Passed!")