DEV Community

Altencir Junior
Altencir Junior

Posted on

1

Resolvendo problemas no HackerRank: Posições ranqueadas

Olá, seja bem vindo a mais um Resolvendo problemas no HackerRank: no problema de hoje, teremos um placar com diversas posições, e devemos criar uma forma de mostrar em ordem decrescente as posições.

Climbing the LeaderBoard -

O problema no dá os seguintes parâmetros de problemas:

  • O jogador com a pontuação mais alta é o número classificado na tabela de classificação.

  • Jogadores com pontuações iguais recebem o mesmo número de classificação e o(s) próximo(s) jogador(es) recebem o número de classificação imediatamente seguinte.

  • int rankeado[n]: as pontuações da tabela de classificação

  • int player[m]: a pontuação do jogador

  • int[m]: a classificação do jogador após cada nova pontuação

Vejamos um exemplo:

ranked [100,90,90,80]
players [70,80,105]

A classificação de ranked será: 1,2,2 e 3. Se os players tem 70, 80 e 105, logo será um return =[ 4,3 e 1]

Vejamos o código e como ele é feito:

function climbingLeaderboard(ranked, player) {
    // Write your code here
  const uniqueRanks = [...new Set(ranked)];
    return player.map(score => {
      while (uniqueRanks.length > 0 && score >= uniqueRanks [uniqueRanks.length - 1]) {
    uniqueRanks.pop();
    }
    return uniqueRanks.length + 1;
    });
}
Enter fullscreen mode Exit fullscreen mode

A função começa criando uma nova variável "uniqueRank", que contém um array único e ordenado das pontuações dos jogadores classificados. Depois fazemos o retorno de parâmetro player utilizando map que irá iterar o parâmetro.

O player.map irá passar um parâmetro score dentro da nova iteração, que enquanto o comprimemnto do novo array uniqueRankfor maior que 0 e menor ou igual a score, ele deve trazer o comprimento menos 1 e depois retirar o último elemento do array retornado.

Finalizando, nós retornamos o comprimento de uniqueRank + 1

O resultado será:

7
100 100 50 40 40 20 10
4
5 25 50 120
////

6
4
2
1
Enter fullscreen mode Exit fullscreen mode

Com isso, concluímos mais um desafio do Resolvendo problemas no HackerRank: . Até a próxima.

Heroku

This site is built on Heroku

Join the ranks of developers at Salesforce, Airbase, DEV, and more who deploy their mission critical applications on Heroku. Sign up today and launch your first app!

Get Started

Top comments (0)