본문으로 바로가기

Hackerrank - Climbing the Leaderboard

category Algorithm 2021. 2. 3. 02:10

[풀이]

더보기
vector<int> climbingLeaderboard(vector<int> ranked, vector<int> player)
{
    vector<int> result(player.size(), 0);
    // Set RankData To Map
    map<int, int> m;
    for(int i = 0 ; i < ranked.size() ; ++i)
        ++m[ranked[i]];
    // count from lowest rank
    int rank_lowest = m.size();
    // map is sorted asscending
    auto iter = m.begin(), end = m.end();
    //
    for(int i = 0 ; i < player.size() ; ++i)
    { // check player rank
        for( ; iter != end ; ++iter)
        { // use iterater continuously
            if(iter->first == player[i])
            { // 1. score is same
                result[i] = rank_lowest;
                break;
            }
            else if(iter->first > player[i])
            { // 2. score is low
                result[i] = rank_lowest + 1;
                break;
            }
            else
            { // 3. score is high
                result[i] = rank_lowest;
                // score is highest
                if(rank_lowest == 1)
                    break;
                else
                    --rank_lowest;
            }
        }
    }
    //
    return result;
}

 

 

 

www.hackerrank.com/challenges/climbing-the-leaderboard/problem?isFullScreen=true&h_r=next-challenge&h_v=zen

 

Climbing the Leaderboard | HackerRank

Help Alice track her progress toward the top of the leaderboard!

www.hackerrank.com