• + 0 comments

    Python3 Solution

    def createRank(scores):
        rank = []
        currScore = scores[0]
        count = 1
        
        for score in scores:
            if score != currScore:
                currScore = score
                count += 1
            rank.append(count)
            
        return rank
    
    
    def climbingLeaderboard(ranked, player):
        rank = createRank(ranked)
        ranked.append(-1)
        rank.append(rank[-1]+1)
        
        res = []
        
        pointer = len(ranked)-1
        for playerScore in player:
            while pointer >= -1:
                if pointer - 1 >= 0:
                    print(playerScore, ranked[pointer], rank[pointer])
                    if playerScore > ranked[pointer-1]:
                        pointer -= 1
                    elif playerScore == ranked[pointer-1]:
                        res.append(rank[pointer-1])
                        break
                    else:
                        if playerScore >= ranked[pointer]:
                            res.append(rank[pointer])
                            break
                        else:
                            res.append(rank[pointer]+1)
                            break
                else:
                    if playerScore >= ranked[pointer]:
                        res.append(rank[pointer])
                        break
                    else:
                        res.append(rank[pointer]+1)
                        break
                            
        return res