• + 0 comments
    def climbingLeaderboard(ranked, player):
        # Remove duplicates and sort in descending order
        ranked = sorted(list(set(ranked)), reverse=True)
        ans = []
        
        for score in player:
            # Use binary search to find the position
            left, right = 0, len(ranked)
            while left < right:
                mid = (left + right) // 2
                if ranked[mid] > score:
                    left = mid + 1
                else:
                    right = mid
            ans.append(left + 1)
        
        return ans