DEV Community

Altencir Junior
Altencir Junior

Posted on

Resolvendo problemas no HackerRank: Presenteando um amigo.

Olá, seja bem vindo a mais um Resolvendo problemas no HackerRank: No caso de hoje, vamos ajudar Taum a dar um presente para seu amigo analisando custos. Vejamos mais informações com a explicação detalhada e sua resolução.

Taum and B'day -

Taum está planejando comemorar o aniversário de seu amigo, Diksha. Existem dois tipos de presentes que Diksha deseja de Taum: um é preto e o outro é branco. Para fazê-la feliz, Taum tem que comprar presentes b pretos e presentes w brancos.

  • O custo de cada presente preto é de bc unidades.
  • O custo de cada presente branco é de wc unidades.
  • O custo para converter um presente preto em um presente branco ou vice-versa é em z unidades.

Vejamos o código a seguir:

function taumBday(b, w, bc, wc, z) {
    // Write your code here
  b = BigInt(b);
  w = BigInt(w);
  bc = BigInt(bc);
  wc = BigInt(wc);
  z = BigInt(z);  

  if (bc >= wc + z){
    return w*wc + b*(wc+z)
  }     
  else if (wc >= bc + z){
    return b*bc + w*(bc+z)
  }    
    else{
     return b*bc + w*wc 
    }      
}
Enter fullscreen mode Exit fullscreen mode

Este é um código JavaScript que define a função taumBday que recebe cinco parâmetros: b e w, que são as quantidades de presentes a serem comprados para pessoas do sexo masculino e feminino, respectivamente; bc e wc, que são os preços unitários dos presentes para homens e mulheres, respectivamente; e z, que é o preço unitário adicional que deve ser pago para converter um presente para o sexo oposto.

O primeiro passo da função é converter todos os parâmetros para o tipo BigInt, o que permite que o código lide com números muito grandes. Em seguida, a função verifica se o preço unitário dos presentes para homens é maior ou igual ao preço unitário dos presentes para mulheres mais o custo adicional z. Se isso for verdadeiro, a função retorna o custo mínimo para comprar presentes para todos, comprando presentes para as mulheres pelo preço unitário wc e presentes para os homens pelo preço unitário wc+z.

Caso contrário, a função verifica se o preço unitário dos presentes para mulheres é maior ou igual ao preço unitário dos presentes para homens mais o custo adicional z. Se isso for verdadeiro, a função retorna o custo mínimo para comprar presentes para todos, comprando presentes para os homens pelo preço unitário bc e presentes para as mulheres pelo preço unitário bc+z. Se nenhuma dessas condições for satisfeita, a função retorna o custo mínimo para comprar presentes para todos, comprando presentes para homens e mulheres pelos preços unitários bc e wc, respectivamente.

O resultado será o seguinte:

5
10 10
1 1 1
5 9
2 3 4
3 6
9 1 1
7 7
4 2 1
3 3
1 9 2

input:

20
37
12
35
12
Enter fullscreen mode Exit fullscreen mode

Assim, concluímos mais um Resolvendo problemas no HackerRank: até a próxima.

Top comments (0)