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
}
}
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 k
for 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
Com isso, concluímos mais um desafio do Resolvendo problemas no HackerRank: . Até a próxima.
Top comments (0)