Olá, seja bem vindo a mais uma etapa do Resolvendo problemas no Hacker-Rank,nessa sessão iremos ver 2 gatos e uma caçada de um rato, eles estão em posições diferentes. Quem será o vencedor desse embate.
Cats and the Mouse -
Nosso problema se dá de 3 animais em posições diferentes. 2 gatos estão atrás de um único rato, porém estão os 3 em posições. Dependendo da posição um gato irá chegar ao gato primeiro, ou vice versa, e caso os dois estejam vindo de mesma distância eles entraram em briga e o rato escapará.
Vejamos um exemplos para compreender melhor:
- x =2 // posição Gato1
- y =5 // posição Gato2
- z =4 // posição rato
No caso acima, observando em posição de números, quem estaria mais próximo de agarrar o rato? O segundo gato, o gato 2, pois o rato está a apenas um de distância enquanto para o gato 1 estaria a dois de distância.
O problema nos diz que o primeiro input será z(podemos ignorar), que representa o número de consultas e logo após na segunda linha em primeira posição o gato1,segunda como gato2 e terceira como o rato. Na última linha o mesmo se segue:
2
1 2 3 //1=gato1,2=gato2 e 3=rato
1 3 2
Vejamos agora a resolução desse problema:
function catAndMouse(x, y, z) {
//x=catA,y=catB and z= mouse
const catA = Math.abs(x-z);
const catB = Math.abs(y-z);
if (catA > catB) return "Cat B";
else if (catB > catA) return "Cat A";
else return "Mouse C";
}
No código acima após a criação da função que guarda os parâmetros que usaremos, criamos uma variável que receberá o nome de catA que irá pegar o valor absoluto entre x(gato1) e z(rato). O mesmo se dá para o caso do catB.
Feito isso, criamos um if onde se catA(ou gato1) for menor que catB, o programa retornará uma string ("Cat B") indicando que o gato2 venceu esse impasse. O mesmo se dá no else if
contrário a situação anterior e também um else
onde caso nenhum dos casos acima seja verdadeiro, o vencedor será o rato.
Vejamos o resultado:
2
1 2 3
1 3 2
//Cat B
//Mouse C
Assim, concluímos mais um desafio. Nos encontramos em breve no próximo Resolvendo problemas no HackerRank.
Top comments (0)