Resolvendo problemas no HackerRank: Entre gato e rato

altencirsilvajr

Altencir Junior

Posted on March 2, 2023

Resolvendo problemas no HackerRank: Entre gato e rato

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
Enter fullscreen mode Exit fullscreen mode

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";
}
Enter fullscreen mode Exit fullscreen mode

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
Enter fullscreen mode Exit fullscreen mode

Assim, concluímos mais um desafio. Nos encontramos em breve no próximo Resolvendo problemas no HackerRank.

💖 💪 🙅 🚩
altencirsilvajr
Altencir Junior

Posted on March 2, 2023

Join Our Newsletter. No Spam, Only the good stuff.

Sign up to receive the latest update from our blog.

Related