Resolvendo problemas no HackerRank: Entre gato e rato
Altencir Junior
Posted on March 2, 2023
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.
Posted on March 2, 2023
Join Our Newsletter. No Spam, Only the good stuff.
Sign up to receive the latest update from our blog.