Look up a player level
A game tracks experience points against a table of ascending thresholds. Find the highest level reached.
- The thresholds list is sorted ascending and contains the XP needed for each level.
- Return the index of the highest threshold the player has met or exceeded.
- If the player has not reached even the first threshold, return -1.
- An empty thresholds list means level 0 is returned.
level_progress(xp: int, thresholds: list<int>) → int
Where you start
def level_progress(xp: int, thresholds: list[int]) -> int:
Worked examples
| Call | Result |
|---|---|
level_progress(50, [10, 30, 60, 100]) | 1 |
level_progress(100, [10, 30, 60, 100]) | 3 |
level_progress(5, [10, 30, 60]) | -1 |
level_progress(0, []) | 0 |
Hint
Walk the thresholds and remember the last one that was met.
Reference solution in Python
def level_progress(xp: int, thresholds: list[int]) -> int:
if len(thresholds) == 0:
return 0
if xp < thresholds[0]:
return -1
result = 0
for i in range(len(thresholds)):
if thresholds[i] <= xp:
result = i
return result