[풀이]
더보기
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;
}
Climbing the Leaderboard | HackerRank
Help Alice track her progress toward the top of the leaderboard!
www.hackerrank.com