DEV Community

Altencir Junior
Altencir Junior

Posted on

Resolvendo problemas no HackeRank: Corrida de obstáculos!

Olá, seja bem vindo a mais um Resolvendo problemas no HackerRank: no problema de hoje, iremos analisar uma corrida com obstáculos de diferentes tamanhos,e queremos que nosso personagem ultrapasse todos eles até chegar o final. Vejamos mais detalhes a seguir:

The Hurdle Race -

Um jogador de video-game joga um jogo no qual o personagem competa em uma corrida de obstáculos. Os obstáculos têm alturas variadas e os personagens têm uma altura máxima que podem pular. Há uma poção mágica que eles podem tomar que aumentará a altura máxima do salto em 1, por dose. Se o personagem já puder superar todos os obstáculos, retorne 0 .

Portanto temos os parâmetros do problema do seguinte modelo:

  • Numa corrida de obstáculos, existem tamanhos variados.
  • Caso o comprimento dos obstáculos seja maior que a altura do personagem, tome 1 poção.
  • Caso todos os obstáculos sejam feitos, retorne 0.

Vejamos um exemplos, antes de iniciar o problema:

  • heigth (n) [1,2,3,3,2] // tamanho de cada obstáculo
  • k [1] // máximo de altura do salto possível

O personagem pode pular uma unidade de altura inicialmente e deve tomar 3 doses - 1(O obstáculo maior menos o máximo de altura salto possível) de poção para poder pular todos os obstáculos.

Vejamos a resolução:

function hurdleRace(k, height) {
    // Write your code here, heigth = n; k =maximum heigth jum
  let maxHeigth = Math.max(...height);

    if (maxHeigth - k <= 0){
      return 0
    }
    else if(maxHeigth > k){
      return maxHeigth - k
    }    
}
Enter fullscreen mode Exit fullscreen mode

No código acima, temos uma função que guarda os parâmetros citados no ínicio do artigo(k e heigth) e declaramos uma variável chamada maxHeigth que é o maior valor do array heigth.

Criamos uma estrutura de condições onde se o maior valor do array heigth(maxHeigth) menos a altura máxima de kfor menor ou igual a zero, retornaremos 0.

Se caso o maxHeigth for maior que k, retornaremos a subtração entre os dois valores.

O resultado será:

5 4
1 6 3 5 2

input: 2
Enter fullscreen mode Exit fullscreen mode

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

Top comments (0)